2017-01-01 8 views
1

多くの読書の後、私の問題の解決策を見つけることができませんでした。Python:ウィンドウのサイズが変更されたときのウィジェットのサイズ変更(PLACEマネージャを使用)

私はTkinterとPythonを使ってクイズプログラムを作っています。私はまた、パックジオメトリマネージャーをどこでも使用しました。ウィンドウはサイズ変更不可、960x540に設定されており、すべてのウィジェットはX座標とY座標を使用してウィンドウ内に正確に設定されます。さて、フルスクリーンオプションを作りたいと思います。しかし、全画面表示にすると、すべてのウィジェットが左上隅に移動します(プレースマネージャーを使用してX座標とY座標に設定されているため)。ウインドウをフルスクリーンにすると、どのようにウィジェットが「ストレッチ」できるのでしょうか? これはグリッド管理を使用して達成できることは分かっていますが、代わりにパックマネージャを使用したいと思います。

私はそれが役に立たないと思わないので、コードを投稿しませんでした。私が間違っているなら、私を修正してください!

PS:私の奇妙な英語のために申し訳ありません、そして、ありがとうございます!

enter image description here

+0

http://effbot.org/tkinterbook/pack.htm

はあなたが望むものを達成するために多くの、多くの方法があり、かつ正しい方法は、あなたが画面に見えるようにしたい正確に何に依存します。あなたが望む正確なレイアウトを見ずに、私たちは決定的な答えを出すことはできません。しかし、 'pack'はかなりよく文書化されており、与えられた領域を拡大して塗りつぶすためのオプションを持っています(' expand'と 'fill'属性で)。まずドキュメントを読んで、いくつかの例を試してみてください。 –

+0

ありがとうございます。今私は1つのイメージをアップロードしました。それはレイアウトです(1つのフレームのうち、レイアウトが異なる複数のフレームがあります)。 – pynoob

+0

'place'メソッドに相対位置を与えることを試みましたか(例えば、' relx = 0.5、rely = 0.5')。 –

答えて

3

あなたが場所マネージャを使用する必要があるとしているグリッドを使用しない場合。多くの人がそれを推奨しています。なぜなら、それはもっと複雑ですが、私はそれがあなたのGUI上であなたに与えるコントロールが好きです。あなたは常に相対的な位置にとどまり、(画面の大きさとの関係で)相対的な幅と高さを持つラベルを持つことができます例えば

newLabel = tk.Label(root) 
newLabel.place(relwidth = 0.5, relheight = 0.2, relx = 0.25, rely = 0.4) 

これはいつもの半分であるラベルを作成します根の大きさの幅、根の高さの20%であり、常に画面の中央に表示されます。

これらは、パックとプレースに関する2つの優れたチュートリアルです。さらに重要なことは、パックとプレースオファー(ページの下にスクロールしてすべてのオプションとその説明を表示)オプションの素晴らしいリファレンスです。あなたは、あなたがしたいことをするためにパックを得ることができるかもしれませんが、私は場所に固執します。
http://effbot.org/tkinterbook/place.htm

関連する問題