ここで私はサブフレームクラスを定義し、そのようなフレームインスタンスをそのコンテナに使用し、そのようなウィジェットに固定サイズを設定したいと考えています。常に'MainFrame' object has no attribute 'resizable'
エラーが発生します。これはテストデモですが、どんな助けにも感謝します。tkinter固定ウィジェットの固定幅と高さ
from tkinter import *
class MainFrame(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.createWidget()
def createWidget(self):
self.innerFrame = Frame(self)
self.innerFrame.master.resizable(width=False, height=False) # ====> this place raise error:'MainFrame' object has no attribute 'resizable'
self.innerFrame.master.maxsize(width=300, height=400)
for l in range(100):
label = Label(self.innerFrame, text="label" + str(l))
label.pack()
self.innerFrame.pack()
if __name__ == '__main__':
top = Tk()
top.resizable(width=False, height=False)
top.minsize(width=400, height=600)
app = MainFrame(top)
app.pack()
app.mainloop()
内部フレームを固定サイズにするのは良い考えのようではありません。あなたは余分なスペースの束か内部ウィジェットのいくつかを隠すことで終わるかもしれません。異なる解像度または異なるデフォルトフォントを持つシステムでプログラムを実行するとどうなりますか?ウィジェットを特定のサイズにすることは、ほとんど常に悪い考えです。 Tkinterは正しいサイズを選ぶのに本当に良いです。 –
@BryanOakley拡張エリアは拡張され、そのようなフレームの下の他のウィジェットをカバーします。より良い解決策は、ラベルフレームを追加してスクロールバーを設定することですが、フレームウィジェットでtkinterが少し短く見えます一時的に固定値を指定します。 – Crabime