Tkinter Radiobutton 在使用 widget.grid() 时填充多行
Tkinter Radiobutton fills multiple rows when using widget.grid()
我在将这些单选按钮与其他小部件正确网格化时遇到了一些问题。单选按钮永远不会进入指定的行,有时会放置在几行的中间。
我正在尝试使单选按钮 "One" 和 "Two" 与按钮 "Quit1" 和 "Quit2" 保持一致。
from Tkinter import *
class myFrame(Frame):
def __init__(self, parent):
self.parent = parent
Frame.__init__(self, parent)
self.initUI()
def initUI(self):
self.grid()
v = IntVar()
r1 = Radiobutton(self.parent, text="One", variable=v, value=1)
r2 = Radiobutton(self.parent, text="Two", variable=v, value=2)
quit1 = Button(self, text = "quit1", command = self.master.destroy)
quit2 = Button(self, text = "quit2", command = self.master.destroy)
quit3 = Button(self, text = "quit3", command = self.master.destroy)
quit1.grid(row=0, column=0)
quit2.grid(row=1, column=0)
quit3.grid(row=2, column=0)
r1.grid(row=0, column=1)
r2.grid(row=1, column=1)
def main():
root = Tk()
root.geometry("250x150+300+300")
app = myFrame(root)
root.mainloop()
if __name__ == '__main__':
main()
问题是您的 Radiobuttons 的父控件与 Buttons 的父控件不同。
只需更改以下两行:
r1 = Radiobutton(self.parent, text="One", variable=v, value=1)
r2 = Radiobutton(self.parent, text="Two", variable=v, value=2)
收件人:
r1 = Radiobutton(self, text="One", variable=v, value=1)
r2 = Radiobutton(self, text="Two", variable=v, value=2)
还请记住,小部件的伸展足以让他们自己 space,仅此而已。
我在将这些单选按钮与其他小部件正确网格化时遇到了一些问题。单选按钮永远不会进入指定的行,有时会放置在几行的中间。
我正在尝试使单选按钮 "One" 和 "Two" 与按钮 "Quit1" 和 "Quit2" 保持一致。
from Tkinter import *
class myFrame(Frame):
def __init__(self, parent):
self.parent = parent
Frame.__init__(self, parent)
self.initUI()
def initUI(self):
self.grid()
v = IntVar()
r1 = Radiobutton(self.parent, text="One", variable=v, value=1)
r2 = Radiobutton(self.parent, text="Two", variable=v, value=2)
quit1 = Button(self, text = "quit1", command = self.master.destroy)
quit2 = Button(self, text = "quit2", command = self.master.destroy)
quit3 = Button(self, text = "quit3", command = self.master.destroy)
quit1.grid(row=0, column=0)
quit2.grid(row=1, column=0)
quit3.grid(row=2, column=0)
r1.grid(row=0, column=1)
r2.grid(row=1, column=1)
def main():
root = Tk()
root.geometry("250x150+300+300")
app = myFrame(root)
root.mainloop()
if __name__ == '__main__':
main()
问题是您的 Radiobuttons 的父控件与 Buttons 的父控件不同。
只需更改以下两行:
r1 = Radiobutton(self.parent, text="One", variable=v, value=1)
r2 = Radiobutton(self.parent, text="Two", variable=v, value=2)
收件人:
r1 = Radiobutton(self, text="One", variable=v, value=1)
r2 = Radiobutton(self, text="Two", variable=v, value=2)
还请记住,小部件的伸展足以让他们自己 space,仅此而已。