我有一个Tk接口,看起来像这样
如您所见,我有3列(如果您计算标签数,则为4列)。我希望条目(及其标签)不与右侧的按钮对齐,因为按钮和条目的数量不同,对齐它们看起来很糟糕
此外,我将画布跨多行,这样条目将保留在画布的左侧,但这会导致条目之间留有较大的空白
我有两个相关的问题
这是我的密码
class Main(tk.Frame):
w = 600
h = 600
def __init__(self,parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
### variables ###
self.iterations = tk.StringVar()
self.angle = tk.StringVar()
self.axiom = tk.StringVar()
self.rule1 = tk.StringVar()
self.rule2 = tk.StringVar()
self.rule3 = tk.StringVar()
self.rule4 = tk.StringVar()
self.constants = tk.StringVar()
### Labels ###
tk.Label(self, text="Iterations").grid(column=0,row=0)
tk.Label(self, text="angle").grid(column=0,row=1)
tk.Label(self, text="axiom").grid(column=0,row=2)
tk.Label(self, text="rule1").grid(column=0,row=3)
tk.Label(self, text="rule2").grid(column=0, row=4)
tk.Label(self, text="rule3").grid(column=0, row=5)
tk.Label(self, text="rule4").grid(column=0, row=6)
tk.Label(self, text="constants").grid(column=0, row=7)
### Entries ###
tk.Entry(self, textvariable=self.iterations).grid(column=1,row=0)
tk.Entry(self, textvariable=self.angle).grid(column=1,row=1)
tk.Entry(self, textvariable=self.axiom).grid(column=1,row=2)
tk.Entry(self, textvariable=self.rule1).grid(column=1,row=3)
tk.Entry(self, textvariable=self.rule2).grid(column=1, row=4)
tk.Entry(self, textvariable=self.rule3).grid(column=1, row=5)
tk.Entry(self, textvariable=self.rule4).grid(column=1, row=6)
tk.Entry(self, textvariable=self.constants).grid(column=1, row=7)
### Render Button ###
tk.Button(self, text="render", command=self.render_image).grid(column=0, row=8, columnspan=2)
### Preset Buttons ###
tk.Button(self, text="Koch Snowflake", command=self.snowflake).grid(column=3, row=0)
tk.Button(self, text="Custom 1", command=self.custom1).grid(column=3, row=1)
### Canvas ###
self.cv = tk.Canvas(self, width=self.w, height=self.h, bg='white')
self.cv.grid(column=2, rowspan=9, row=0)
self.grid()
在列中使用框架,然后可以在每个框架中使用不同的管理器网格/打包/放置
除此之外,您可以使用不同的按钮获得一些帧,并显示/隐藏帧以替换所有按钮(网格(忘记/打包(忘记/放置(忘记))
相关问题 更多 >
编程相关推荐