首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter OptionMenu命令异常

Tkinter OptionMenu命令异常
EN

Stack Overflow用户
提问于 2013-08-31 15:02:06
回答 1查看 4.8K关注 0票数 0

我想要创建一个tkinter OptionMenu,当它被更改时可以编辑另一个OptionMenu。因此,我尝试创建一个command=参数,它使一个特定的命令在OptionMenu的每个更新上运行,就像我使用command=参数对按钮、spinbox等所做的那样。

代码语言:javascript
复制
tl.wktype = OptionMenu(tl,wktypevar, *wk_types,command=typeupdate)

代码中的其他地方是typeupdate()命令--为了现在的调试目的。

代码语言:javascript
复制
def typeupdate():
    typeval = tl.wktype.get()
    print(typeval)

异常python抛出如下:

代码语言:javascript
复制
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
    return self.func(*args)
  File "C:\Python33\lib\tkinter\__init__.py", line 3300, in __call__
    self.__callback(self.__value, *args)
TypeError: typeupdate() takes 0 positional arguments but 1 was given

typeupdate()认为给出了哪些位置参数,以及如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-31 15:10:26

它被赋予被点击的值。要演示该脚本,请考虑以下脚本:

代码语言:javascript
复制
from tkinter import Tk, OptionMenu, StringVar
root = Tk()
def func(val):
    print(val)
var = StringVar()
OptionMenu(root, var, "one", command=func).grid()
root.mainloop()

当运行(单击选项菜单中的选项"one“)时,它会在终端中打印"one”。

因此,总之,将val (或任何其他参数名称)添加到函数声明中,它将工作:

代码语言:javascript
复制
def typeupdate(val):
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18549490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档