Python 如何在Tkinter中正确构造框架
我正在创建一个简单的聊天应用程序,但在将框架打包到主窗口时遇到了问题。 以下是我的代码部分:Python 如何在Tkinter中正确构造框架,python,user-interface,tkinter,Python,User Interface,Tkinter,我正在创建一个简单的聊天应用程序,但在将框架打包到主窗口时遇到了问题。 以下是我的代码部分: 类主应用程序(框架): 定义初始化(自、父、*args、**kwargs): Frame.\uuuuuu init\uuuuuuuuuuu(自、父、*args、**kwargs) self.server\u frame=ServerFrame(self) self.server\u frame.pack(side=“left”) self.client\u frame=ClientFrame(self)
类主应用程序(框架):
定义初始化(自、父、*args、**kwargs):
Frame.\uuuuuu init\uuuuuuuuuuu(自、父、*args、**kwargs)
self.server\u frame=ServerFrame(self)
self.server\u frame.pack(side=“left”)
self.client\u frame=ClientFrame(self)
自助客户端\框架包(side=“left”)
self.chat\u frame=聊天框(self)
self.chat\u frame.pack(side=“right”)
self.additional\u frame=附加帧(self)
自附加框架包装(侧面=“底部”,填充=“x”)
如何将其发送到GUI,如下所示:
pack()
在所有小部件都需要在一行或一列中时效果最好。为此,我推荐grid()
:
是否有使用pack()的原因?从您的(非常好的)图形来看,grid()布局会更好。@Novel不,实际上不需要使用pack(),我只是认为使用pack()会更容易,因为我尝试过使用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')