【发布时间】:2019-12-17 21:32:11
【问题描述】:
我在使用 Tkinter 时遇到了一些问题,我想在按下按钮时检索选项菜单的选定项,但是在使用小测试函数“getdataset”测试功能时,我只得到预定义的数据变量(“Birthdata”)作为输出,因此 datavariable.get() 方法似乎没有返回选项菜单中的选定选项。我到处寻找,但似乎找不到答案。任何帮助表示赞赏。
带有选项菜单的代码
root = Tk()
root.configure(background='white')
def getdataset():
print(datavariable.get())
datavariable = StringVar(root)
datavariable.set('Birthdata')
PickData = OptionMenu(root, datavariable,'Birthdata', 'Marriagedata', 'Deathdata',command=getdataset)
PickData.grid(column=1,columnspan=2,row=1)
点击按钮初始化测试函数的代码:
wordcloud = Button(root, text = 'Word Cloud', bg='white', width=20, height = 5, command=getdataset)
点击多个按钮后的输出:
Birthdata
Birthdata
Birthdata
我想
【问题讨论】:
-
你可能会抛出一个错误。更具体地说
TypeError: getdataset() takes 0 positional arguments but 1 was given。将getdataset():更改为getdataset(_=None):,如果有帮助,请告诉我。 -
你应该得到一个错误,这个错误会告诉你哪里出了问题。如果我们用明显的代码填充缺失的部分,发布的代码会出错。如果您没有收到错误,请edit 您的问题包括正确的minimal reproducible example。
-
@Mike-SMT 我试过了,但它仍然只打印预定义的变量
-
@BryanOakley 不...我没有任何错误,这使得它很奇怪且难以解决
-
您一定会遇到错误,除非您使用的是非标准的
OptionMenu。回调需要一个参数,而您的回调不接受一个参数。但是,即使出现错误,您的代码对我来说也能正常工作——当我单击按钮时,它总是显示选定的值。
标签: python python-3.x tkinter optionmenu tkinter.optionmenu