-2

我在 GUI Tk 中做一个 UI。我是在“蓝色”中标记的那个:我正在使用列跨度,但它也没有延伸到 UI 框架的末尾。“红色”:这里我不知道为什么这里的UI是中间对齐的。

我可能会犯一些简单的错误,我尝试了很多来找到解决方案。除了像下面的代码那样给出行号和列号之外,还有其他方法吗,如果有其他方法可以实现它

Code =tk.Label(self.page2,text="Code ").grid(row=1,rowspan=2,pady=(10,10),sticky="NW")
CodeTextbox= Entry(self.page2).grid(row=1,column= 2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
SerialNumber=tk.Label(self.page2,text=" Serial Number").grid(row=3,rowspan=2,pady=(10,10),sticky="NW" )
SerialNumberTextBox=Entry(self.page2).grid(row=3,column=2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
Model=tk.Label(self.page2,text="Model ").grid(row=5,rowspan=2,pady=(10,10),sticky="NW" )
ModelTextbox=Entry(self.page2).grid(row=5,column=2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
KCheckBox=Checkbutton(self.page2,text="").grid(row=7,column=1,rowspan=2,columnspan=2,pady=(10,10),sticky="W")
FCheckBox = Checkbutton(self.page2, text="F").grid(row=7, column=3,rowspan=2,columnspan=2, pady=(10, 10), sticky="W")
OW=tk.Label(self.page2,text="OW").grid(row=9,column=1,rowspan=2,columnspan=2,pady=(10,10),sticky="NW" )
OWSupported=Checkbutton(self.page2,text="Supported").grid(row=9,column=3,rowspan=2,columnspan=2,pady=(10,10),sticky="W")
OWNOTSupported=Checkbutton(self.page2,text="NOT Supported").grid(row=9,column=5,rowspan=2,columnspan=2,pady=(10,10),sticky="W")

图片

4

1 回答 1

1

您的所有列都没有与它们相关的权重,因此它们都将尽可能小。即使你这样做columnspan=100了,第 6-100 列的宽度都为零。根据经验,您应该始终为至少一行和一列提供非零宽度,以便使用 GUI 中的全部空间。

此外,您并不要求条目小部件“粘”在右侧。因此,即使它们所在的列扩展了 GUI 的整个宽度,条目小部件也不会扩展,因为您也没有告诉它们。

最后,我强烈建议您将小部件创建与小部件布局分开,并将所有布局代码组合在一起,以便可以将所有布局选项视为一个组。你现在这样做的方式,变量是无用的,因为它们都被设置为None,因为这就是.grid(...)返回的。

于 2018-06-07T14:28:03.153 回答