2015-11-03 57 views
0

我有一個廣泛的元素的大框架。在這個框架內,框架基本上有兩個不同的側面。考慮在左側的小部件x,其由.grid(row=4, column=0)放置。填充被添加到這個對象x,所以它實際上是x.grid(row=4, column=0, pady=10)那麼,相反的對象,對象y,被放置在同一行y.grid(row=4, column=4),或沿着這些行的東西。我有這樣的設置,但paddy on x也在向y添加填充。 我希望在行中的一個小部件上有填充 - 而不是整行。因此,我的解釋問題是,如何在一行中只添加一個填充到一個小部件,而不在每個對象中添加填充?如何在tkinter中將填充添加到小部件,但不是整個行的小部件?

+0

'pady = 10'在x的頂部和底部增加了10個像素。當排中的wigdets被網格化時,該行將具有該行中最高項目的高度,包括其填充。如果您獲得的填充比您想要的多,請嘗試減少填充量。 (你也可以嘗試用'ipady = 10'來代替;我從來沒有真正理解這個區別應該是什麼。) – saulspatz

回答

0

使用.grid()幾何管理器時,包含其間距的小部件的最大大小將是整個行和列的寬度和長度。謝天謝地,有辦法解決這個問題。這裏有兩個這樣的選項:

選項1

使用粘到你的widget y強制到正確的位置。它看起來像這樣:y.grid(row=1, column=1, sticky="nw")。 「nw」是小部件粘貼在網格上的位置。例如,如果將其設置爲「n」,則y將位於其網格空間的頂部。

選項2

使用columnspanrowspan允許插件x佔據多個網格空間。這看起來像x.grid(row=1, column=1, rowspan=2)。這會拉伸x的網格空間,並且不會影響它的右側和左側的小部件。把它想成是這樣; row是您開始繪製矩形的地方,而columnspanrowspan是您結束的地方。

有了這些想法,請看看this link看看我上面描述的方法是如何工作的。

+0

這是一個令人難以置信的,不屈不撓的解釋。非常感謝@Camon。 – jordancolbycox

0

行的定義就是這個高度一直是相同的。這是什麼讓它連續。列可以這樣說。

因此,行(高度加上填充)中最高的項是控制行的總高度。你對小部件的唯一控制是它們所粘附的太大單元格的哪一側。例如,如果您希望所有小部件都沿着頂部對齊,請使用sticky="n",這會導致小部件的頂部「粘」到已分配空間的頂部(北側)。如果您希望它們沿底部對齊,請使用sticky="s"。既不提供"n""s"意味着他們將沿着他們的中點對齊。

相關問題