簡體   English   中英

展開文本小部件以在Tkinter中填充整個父框架

[英]Expand Text widget to fill the entire parent Frame in Tkinter

我得到了這個Text小部件,我希望它使用Grid geometry manager擴展並填充其整個父級。

根據我所看到的示例,此示例程序應該可以工作,但事實並非如此,當擴展窗口時,內容不會調整大小。

from Tkinter import *
root = Tk()

input_text_area = Text(root)
input_text_area.grid(row=1, column=0, columnspan=4, sticky=W+E)
input_text_area.configure(background='#4D4D4D')

root.mainloop()

任何幫助表示贊賞

就其價值而言,盡管我認為IDE不相關,但我正在Python 2.7(最新的2.x版本)中運行,並在PyCharm中進行編碼。

使用網格時,父級中任何多余的空間都與行和/或列的“權重”成比例分配(即:權重為2的列所占空間是權重為1的一倍。 )。 默認情況下,行和列的權重為0(零),這意味着不會給它們額外的空間。

您需要為小部件的權重賦予非零值,以便在窗口增長時將多余的空間分配給該列。

root.grid_columnconfigure(0, weight=1)

您還需要指定行的權重,如果希望它在所有方向上都增加,則應指定粘性值N+S+E+W

由於您的窗口僅包含一個窗口小部件,並且您希望此窗口小部件填充整個窗口,因此使用pack幾何圖形管理器而不是grid會更容易

input_text_area.pack(expand=True, fill='both')

expand=True告訴Tkinter允許小部件展開以填充幾何圖形母版中的任何額外空間。 fill='both'使小部件可以水平和垂直擴展。

from tkinter import *
root = Tk()

input_text_area = Text(root)
input_text_area.grid(row=0, column=0, columnspan=4, sticky=N+S+W+E)
input_text_area.configure(background='#4D4D4D')
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)

root.mainloop()

不確定這是否是您想要的。 但這會填滿整個屏幕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM