我有一個關于 python tkinter 的初學者問題:
我有一個這樣的框架:
import tkinter
root = tkinter.Tk()
root.geometry('100x100')
frame = tkinter.Frame(root, width=100, height=80, bg='green')
frame.pack()
root.mainloop()
結果是一個視窗,大部分是綠色的。現在我想在那個綠色區域上放置一個標簽。因此,我在frame.pack()和root.mainloop()之間添加了以下內容:
label = tkinter.Label(frame, text='TESTTEST')
label.pack()
這將導致視窗列印TESTTEST。但沒有什么是綠色的了。我的 Frame 去哪兒了?文本還不夠大,無法用自己的背景完全覆寫綠色區域。
我究竟做錯了什么?為什么它不能那樣作業?
在框架和標簽之間放置另一個框架,如下所示:
frame2 = tkinter.Frame(frame, width=100, height=20)
frame2.pack()
導致標簽上方的區域是無色的。但是,在我的標簽的左側和右側,它是綠色的?!上面和下面都不是綠色。就在我的標簽左右。
這是如何運作的?
uj5u.com熱心網友回復:
用于label.place()指定您想要標簽的位置。例如
label.place(x=20,y=20)
這會將標簽放在內部frame位置 (20,20)。
默認標簽寬度是文本長度加上填充。您可以指定寬度和高度place()以及其他選項。
您可以在初始化陳述句中指定選項label = tkinter.Label(frame,<*options in here>)以獲取背景、前景色和其他屬性。
tkinter 使用默認字體,因此您需要查看font更改該選項的選項。可以創建自己的字體并應用它,但我建議你在嘗試之前先了解更多。
uj5u.com熱心網友回復:
當您使用pack和時,默認情況下小部件將縮小以適合其子級grid。這就是你 99% 的時間想要的。制作簡單示例時可能看起來不直觀且無用,但在創建真實、復雜的用戶界面時,這會使作業變得更容易,因為您不必擔心計算小部件的大小和位置。
如果視窗配置為大于框架,并且您將框架配置為填充視窗,您將看到綠色。
frame.pack(fill="both", expand=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419882.html
標籤:
上一篇:大量的Python錯誤?
