我想在Python中构建一个小的GUI应用程序。目标是让一个主窗口调用其他几个窗口。在这些所谓的窗口之一,我有一个checkbutton。我的问题是我无法读取这个checkbutton的值,而我可以读取Entry小部件的值。我究竟做错了什么?Python tkinter checkbutton值不可访问
from tkinter import *
import tkinter as tk
class mainwindow():
def __init__(self, master):
self.master = master
menubalk = Menu(self.master)
menubalk.add_command(label="New window", command=self.openNewwindow)
self.master.config(menu=menubalk)
def openNewwindow(self):
window = newwindow()
window.mainloop()
class newwindow(Tk):
def __init__(self):
Tk.__init__(self)
self.var = BooleanVar()
self.checkbutton = Checkbutton(self, text="Check", variable=self.var)
self.checkbutton.grid(column=0, row=0)
self.var2 = StringVar()
self.entry = Entry(self, textvariable=self.var2)
self.entry.grid(column=2,row=0)
self.button2 = Button(self,text=u"Show", command=self.showValues).grid(column=1, row=0)
def showValues(self):
print('Value checkbutton:', self.var.get(), ';', 'Value entryfield: ', self.entry.get())
def main():
root = Tk()
window = mainwindow(root)
root.mainloop()
if __name__ == '__main__':
main()
你所说的 “无法读取值” 是什么意思?当你调用'self.var.get()'时你会得到什么? – acdr
我也总是得到False,同时检查checkbutton。 – Erwin
您可以尝试明确设置检查按钮的开启和关闭值吗? (例如,Checkbutton(self,text =“Check”,variable = self.var,onvalue = True,offvalue = False)') – acdr