【问题标题】:(Very Simple) Get next element in menu?(非常简单)获取菜单中的下一个元素?
【发布时间】:2020-09-02 18:50:24
【问题描述】:

我正在尝试编写一个非常简单的脚本。如您所见,我是 Python 中的一个大菜鸟。 我创建了一个包含 3 个选项的 Tkinter 选项菜单。 当我按“n”键时,我希望我的菜单设置为下一个选项。 所以默认值是“banana”,当我按一次“n”时,它必须是“apple”,然后是“coco”,然后是“banana”等等...... 一切正常我只是不知道写什么来获得下一个选项。

fruitmenu = tk.OptionMenu(root, fruit, "banana", "apple", "coco")

fruit.set("banana") # default value

while True:
        root.update()
        if keyboard.is_pressed('n'):   
                print('Next Fruit')
                ???  
       

提前致谢。

【问题讨论】:

  • 请记住,只要循环完成,使用 while 就会冻结您的 GUI

标签: python tkinter menu optionmenu


【解决方案1】:

首先,keyboard.is_pressed('n')root.bind('n', func)。其次,要选择菜单中的下一个选项,您可以将这些选项保存在列表或其他容器中,然后检查您所在的选项并转到下一个选项。将该逻辑放入回调函数中。

fruits = '0123456789ABCDEF' # or a list ['0', '1'...] etc.
fruitmenu = tk.OptionMenu(root, fruit, *fruits)
def func(event=None):
    fruit.set(fruits[(fruits.index(fruit.get())+1)%len(fruits)])

【讨论】:

  • 非常感谢,它的工作原理。我实际上不得不使用keyboard.is_pressed('n'),因为即使我在另一个程序上,我也需要识别按键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2014-08-18
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多