我遇到的一個問題的簡化版本。下面的代碼產生了這樣的輸出:
from tkinter import *
# init root[/span
root = Tk()
# get window size # get window size
windowWidth = root.winfo_screenwidth()
windowHeight = root.winfo_screenheight()
#創建綠色框架
greenFrame = Frame(root,width=windowWidth, height=windowHeight/2, borderwidth = 0, highlightthickness = 0, bg='green')
greenFrame.grid_propagate(0) # 固定大小。
greenFrame.grid(row=0, column=0)
# 在綠色框架內創建藍色畫布。
blueCanvas = Canvas(greenFrame, width=windowWidth/5, height=windowHeight/2, borderwidth = 0, highlightthickness = 0, bg='blue')
blueCanvas.grid(row=0, column=0, sticky='e'/span>) # 顯示在右邊。
# 運行回圈
root.mainloop()
藍色畫布被設定在綠色框架中。我的問題是,當藍色畫布在網格呼叫中被設定為sticky = 'e'時,為什么它沒有出現在綠色框架的右側?
預先感謝!
uj5u.com熱心網友回復:
我的問題是,當網格呼叫中設定了sticky = 'e'時,為什么藍色畫布沒有出現在綠色框架的右側?
您將藍色畫布放置在第 0 列,它將從綠色框架的最左邊開始。你給它的寬度是視窗寬度的1/5,所以那是grid為它分配的空間。視窗的其他4/5的空間沒有被grid使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/321100.html
標籤:

