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_框架或窗口,您应该给至少一行和一列赋予非零权重。 –