[英]How to correctly structure frames in Tkinter
I'm creating a simple chat app and I'm having a problem with packing Frames into the main window.我正在创建一个简单的聊天应用程序,但在将 Frames 打包到主窗口时遇到了问题。 Here is the part of my code:
这是我的代码的一部分:
class MainApplication(Frame):
def __init__(self, parent, *args, **kwargs):
Frame.__init__(self, parent, *args, **kwargs)
self.server_frame = ServerFrame(self)
self.server_frame.pack(side="left")
self.client_frame = ClientFrame(self)
self.client_frame.pack(side="left")
self.chat_frame = ChatFrame(self)
self.chat_frame.pack(side="right")
self.additional_frame = AdditionalFrame(self)
self.additional_frame.pack(side="bottom", fill="x")
How can I get it to GUI looks like this:我怎样才能得到它的 GUI 看起来像这样:
pack()
is best when all of the widgets need to be in a single row or column.当所有小部件都需要在一行或一列中时,
pack()
是最好的。 For this I'd recommend grid()
:为此,我建议使用
grid()
:
class MainApplication(Frame):
def __init__(self, parent, *args, **kwargs):
Frame.__init__(self, parent, *args, **kwargs)
self.server_frame = ServerFrame(self)
self.server_frame.grid(row=0, column=0)
self.client_frame = ClientFrame(self)
self.client_frame.grid(row=1, column=0)
self.chat_frame = ChatFrame(self)
self.chat_frame.grid(row=0, column=1, rowspan=2)
self.additional_frame = AdditionalFrame(self)
self.additional_frame.grid(row=2, column=0, columnspan=2, sticky='ew')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.