我定义了一个使用tkinter创建LabelFrame的类,带有一个单选按钮
这是我的代码:
from tkinter import *
class MyLabelFrame:
def __init__(self, master=None,row=0,col=0,label='MyFrame'):
self.frame = LabelFrame(master, text=label)
self.frame.grid(row=row,column=col, sticky=(N,S,E,W))
Label(self.frame,text=label).grid(row=0,column=0,columnspan=2)
self.frame.config(borderwidth = 2)
MODES = [("Yes", "1"), ("Not", "0")]
self.value = StringVar()
self.value.set("Yes")
for text, mode in MODES:
self.b = Radiobutton(self.frame, text=text,
variable=self.value.get(), value=mode)
self.b.grid(column=0, sticky=(W, E))
#b.pack(anchor=W)
##### Tkinter window
root = Tk()
root.title("My Root")
##### Create 3 frames
Myframe1 = MyLabelFrame(master=root, row=0, col=0, label='Frame1')
Myframe2 = MyLabelFrame(master=root, row=1, col=0, label='Frame2')
Myframe3 = MyLabelFrame(master=root, row=2, col=0, label='Frame3')
问题是按钮不是独立的,如果我将其设置为YES,则所有三个都变为YES。
我想要三个独立的框架。
答案 0 :(得分:1)
你需要改变这个:
variable=self.value.get()
到此:
variable=self.value
variable
选项需要tkinter变量的实例,而不是变量的值。