【问题标题】:Python Tkinter return menu label as stringPython Tkinter将菜单标签作为字符串返回
【发布时间】:2017-11-07 21:39:40
【问题描述】:

我正在尝试使用 tkinter 和 python 代码以某种方式返回当前菜单标签的值。

我想根据正在使用的串口数量动态更新editmenu,但我不知道该怎么做。

我已经尝试过使用list[x].device,但是当调用该函数时,它使用了过去的值x(正如预期的那样,所以这不起作用)。

有人有什么想法吗?

谢谢!

editmenu = Menu(menubar, tearoff=0)
list = serial.tools.list_ports.comports()
for x in range(0, len(list)):
    editmenu.add_command(label=list[x].device, command=lambda:app.setPort())
menubar.add_cascade(label="Port", menu=editmenu)

【问题讨论】:

    标签: python tkinter menu label return-value


    【解决方案1】:

    您可以通过 lambda 传递端口或标签:

    editmenu.add_command(label=list[x].device, 
      command=lambda label=list[x].device:app.setPort(label))
    

    然后您只需定义setPort 以接受标签作为参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2016-12-31
      • 2018-10-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      相关资源
      最近更新 更多