如何設置/更改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)來說明如何使用寬度可變列的固定寬度分隔符。 –