0
我正在研究一個小實用工具。 我有tk pack system的問題,我把整個系統改成tkinter grid packer。但我無法輕鬆地將小部件放在任何我想要的地方。粘性值不會以意想不到的方式應用或應用。或者我做錯了什麼。Tkinter網格包裝器中「粘滯」的內部行爲
下面的代碼有什麼問題?
import tkinter as tk
root = tk.Tk()
var = tk.IntVar()
root.minsize(width=400, height=400)
root.resizable(width=True, height=True)
root.grid_propagate(0)
frame = tk.Frame(root,width=400, height=400, bg="cyan")
frame.grid()
frame.grid_propagate(0)
frame.grid_columnconfigure(0, weight=1)
frame.grid_columnconfigure(1, weight=1)
frame1 = tk.Frame(frame,width=200, height=100, bg="green")
frame2 = tk.Frame(frame,width=200, height=100, bg="blue")
frame3 = tk.Frame(frame,width=200, height=100, bg="yellow")
frame4 = tk.Frame(frame,width=200, height=100, bg="grey")
frame1.grid_propagate(0)
frame2.grid_propagate(0)
frame3.grid_propagate(0)
frame4.grid_propagate(0)
tk.Radiobutton(frame1 ,text="TEXT" ,variable=var ,value=1,indicatoron=0
,width=16 , height=1).grid(sticky=tk.N+tk.E+tk.W)
tk.Radiobutton(frame2 ,text="TEXT" ,variable=var ,value=2,indicatoron=0
,width=16 , height=1).grid(sticky=tk.N+tk.E+tk.W)
tk.Radiobutton(frame3 ,text="TEXT" ,variable=var ,value=3,indicatoron=0
,width=16 , height=1).grid(sticky=tk.N+tk.E+tk.W)
tk.Radiobutton(frame4 ,text="TEXT" ,variable=var ,value=4,indicatoron=0
,width=16 , height=1).grid(sticky=tk.N+tk.E+tk.W)
frame1.grid(row=0,column=0)
frame2.grid(row=0,column=1)
frame3.grid(row=1,column=0)
frame4.grid(row=1,column=1)
root.mainloop()
我期望這些按鈕/單選按鈕拉伸至它們被放置在引起框架的限制我使用
grid(sticky=tk.N+tk.E+tk.W) .
但它不工作。
但是S中要給點上,我已經給佈局網格中已經小部件的權重?這不切實際嗎? – user7685914
這是真的工作..我想我有理解邏輯的問題..謝謝你布賴恩... – user7685914
@ user7685914:包含其他小部件使用'grid'的每個小部件使用完全不同的網格配置。賦予父項的權重不會影響嵌套在內部的小部件的列的行。經驗法則是,對於使用網格來管理其直接子元素的_every_框架或窗口,您應該給至少一行和一列賦予非零權重。 –