2

Python 2.7 で Tkinter/ttk を使用して GUI を作成していますが、フレーム内にウィジェットが配置されるとフレームのサイズが変更されるという問題があります。私は Python を初めて使用し、Tkinter を使用したことがありません。

例:

ROOT = Tk()
FRAME = ttk.Frame(ROOT, width=300, height=300, relief='groove')
FRAME.grid()
ROOT.mainloop()

次のようにウィジェットをその中に配置すると、溝付きフレーム 300x300 が生成されます。

ROOT = Tk()
FRAME = ttk.Frame(ROOT, width=300, height=300, relief='groove')
BUTTON = ttk.Button(FRAME, text="DON'T READ THIS TEXT")
FRAME.grid()
BUTTON.grid()
ROOT.mainloop()  

ボタンに合わせてフレームが縮小されます。フレームのサイズを変更しないようにする方法はありますか?

4

4 に答える 4

6

フレームを強制的に元の寸法に保つには、「ジオメトリの伝播」をオフにします。あなたの場合、あなたはFRAME.grid_propagate(False)

15年以上のTkの経験を持つ人として言えば、この機能はほぼ間違いなく必要ないことをお勧めします。「縮小してフィット」するTkの機能は非常に優れており、適切なサイズ変更動作を備えたGUIを非常に簡単に作成できます。ジオメトリの伝播をオフにし始めると、サイズ変更の動作が悪いGUIがあるか、サイズとウィジェットの配置を微調整するのに多くの時間を費やすことになります。

于 2010-10-20T17:10:38.047 に答える
1

パディングを追加する場合は、使用しますwidg.grid(ipadx=..., ipady=..., padx=..., pady=...)

それ以外の場合は、達成しようとしているレイアウトについてさらにコンテキストを追加する必要があります

于 2010-10-20T15:46:40.583 に答える
0

これは私のために働く:

app = Application()
app.master.title('Example')
app.master.geometry('640x480')
app.mainloop()

アプリケーションは、グリッド レイアウトの私の場合は Frame です。マスター ウィンドウのサイズに合わせてサイズが変更されるため、マスター ウィンドウのサイズを変更する必要があります。

于 2017-10-20T11:44:54.377 に答える
-1

これは仕事をするはずです:ROOT.geometry("640x480")

于 2010-12-08T14:22:36.223 に答える