单选按钮实例没有属性“变量
Radiobutton instance has no attibute 'variable
我正在尝试使用单选按钮为用户提供一组选择。当我点击 "Get Data Type" 按钮时,Python returns “AttributeError: Radiobutton instance has no attribute 'variable'。显然它有,但拒绝看到它(他们):
class DataType:
def __init__(self, master):
frame = LabelFrame(master, text = 'Data Type')
frame.pack()
data_contents = StringVar()
self.radiobutton = Radiobutton(frame,
text="Fixed Data",
variable = data_contents,
value = 'fixed')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="Random Data",
variable = data_contents,
value = 'random')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="All 1's",
variable = data_contents,
value = '1s')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="All 0's",
variable = data_contents,
value = '0s')
self.radiobutton.pack()
data_contents.set(self.radiobutton)
self.printdata = Button(frame,
text="What data?",
command=self.write_data)
self.printdata.pack()
def write_data(self):
print (self.radiobutton.variable)
你误解了 tkinter 选项。当您指定像 variable=data_contents
这样的属性时,它不会成为对象的属性。相反,它是一个小部件配置选项。
要访问 variable
配置选项的值,您需要使用以下选项之一:
self.radiobutton.cget("variable")
self.radiobutton["variable"]
注意:这个问题你走错了路。您不需要获取变量,因为您可以控制变量是什么。该变量应该是一个实例属性,您可以调用 get()
方法:
...
self.data_contents = StringVar()
...
def write_data(self):
print(self.data_contents.get())
我正在尝试使用单选按钮为用户提供一组选择。当我点击 "Get Data Type" 按钮时,Python returns “AttributeError: Radiobutton instance has no attribute 'variable'。显然它有,但拒绝看到它(他们):
class DataType:
def __init__(self, master):
frame = LabelFrame(master, text = 'Data Type')
frame.pack()
data_contents = StringVar()
self.radiobutton = Radiobutton(frame,
text="Fixed Data",
variable = data_contents,
value = 'fixed')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="Random Data",
variable = data_contents,
value = 'random')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="All 1's",
variable = data_contents,
value = '1s')
self.radiobutton.pack()
self.radiobutton = Radiobutton(frame,
text="All 0's",
variable = data_contents,
value = '0s')
self.radiobutton.pack()
data_contents.set(self.radiobutton)
self.printdata = Button(frame,
text="What data?",
command=self.write_data)
self.printdata.pack()
def write_data(self):
print (self.radiobutton.variable)
你误解了 tkinter 选项。当您指定像 variable=data_contents
这样的属性时,它不会成为对象的属性。相反,它是一个小部件配置选项。
要访问 variable
配置选项的值,您需要使用以下选项之一:
self.radiobutton.cget("variable")
self.radiobutton["variable"]
注意:这个问题你走错了路。您不需要获取变量,因为您可以控制变量是什么。该变量应该是一个实例属性,您可以调用 get()
方法:
...
self.data_contents = StringVar()
...
def write_data(self):
print(self.data_contents.get())