新的类实例

时间:2015-10-19 00:03:53

标签: class tkinter

我定义了一个使用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')

Here is the resulting Frame

问题是按钮不是独立的,如果我将其设置为YES,则所有三个都变为YES。

我想要三个独立的框架。

1 个答案:

答案 0 :(得分:1)

你需要改变这个:

variable=self.value.get()

到此:

variable=self.value

variable选项需要tkinter变量的实例,而不是变量的值。