【发布时间】:2016-06-16 16:16:50
【问题描述】:
我想用 Python 构建一个小的 GUI 应用程序。目标是让一个主窗口调用其他几个窗口。在其中一个称为窗口的窗口中,我有一个复选按钮。我的问题是我无法读取此复选框的值,而我可以读取 Entry 小部件的值。我做错了什么?
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()会得到什么? -
我总是得到 False,当检查按钮被选中时也是如此。
-
你能尝试明确设置检查按钮的开和关值吗? (例如
Checkbutton(self, text="Check", variable=self.var, onvalue=True, offvalue=False)) -
试过了,结果一样。