如何设置/更改Tkinter中ttk.Separator对象的长度/宽度?ttk.Separator设置长度/宽度
ttk.Separator(self, orient='horizontal').grid(column=0,
row=0, columnspan=2, sticky='ew')
似乎columnspan试图做的工作,但是当你有多个分离器具有相同columnspan,他们似乎有不同的长度 - 任何想法,为什么?
下面是一个简单快速的ad-hoc“脏”的测试例子:
import ttk
from Tkinter import *
class myTestFrame(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("My Test Frame")
self.master.minsize(350, 150)
self.grid(sticky=W+N+S+E)
firstLayer = Frame(self)
firstLayer.pack(side="top", fill="x")
secondLayer = Frame(self)
secondLayer.pack(side="top", fill="x")
thirdLayer = Frame(self)
thirdLayer.pack(side="top", fill="x")
labelText=StringVar()
labelText.set("Enter your area zip code: ")
labelDir=Label(firstLayer, textvariable=labelText, fg="black", font = "Calibri 10 bold")
labelDir.grid(row=2, column=0, sticky="W")
zipCode=IntVar(None)
entryFieldFrame=Entry(firstLayer,textvariable=zipCode,width=5)
entryFieldFrame.grid(row=2, column=1, sticky="W", padx=31)
ttk.Separator(secondLayer, orient='horizontal').grid(column=0,
row=0, columnspan=2, sticky='ew')
labelText=StringVar()
labelText.set("Enter your age: ")
labelDir=Label(secondLayer, textvariable=labelText, fg="black", font = "Calibri 10 bold")
labelDir.grid(row=2, column=0, sticky="W")
age=IntVar(None)
age.set(1.0)
entryFieldFrame=Entry(secondLayer,textvariable=age,width=5)
entryFieldFrame.grid(row=2, column=1, sticky="W", padx=83)
ttk.Separator(thirdLayer, orient='horizontal').grid(column=0,
row=0, columnspan=2, sticky='ew')
labelText=StringVar()
labelText.set("Enter your brother's age: ")
labelDir=Label(thirdLayer, textvariable=labelText, fg="black", font = "Calibri 10 bold")
labelDir.grid(row=2, column=0, sticky="W")
brothersAge=IntVar(None)
entryFieldFrame=Entry(thirdLayer,textvariable=brothersAge,width=5)
entryFieldFrame.grid(row=2, column=1, sticky="W", padx=29)
if __name__ == "__main__":
testFrame = myTestFrame()
testFrame.mainloop()
'columnspan'不会影响宽度_per se_,它只是定义窗口小部件跨越的列数。实际宽度取决于列的大小。 –
是否可以明确地(重新)定义分隔符的宽度,因为我有不同的长度不同的列,但是仍然希望具有相同的宽度/长度的分隔符?看起来,**网格**规范中的** padx **选项也无法提供帮助。 – schmi
是和不是。当然有一些技巧可以做,比如把分隔符放在一个框架中,然后设置框架的大小,但这很少需要。分隔符被设计为分离项目,并且通常与它们分离的事物具有相同的宽度或高度。您似乎将其用于其他目的,但您的问题中没有足够的信息来建议替代方案。请给一个mcve(http://www.stackoverflow.com/help/mcve)来说明如何使用宽度可变列的固定宽度分隔符。 –