小编Mag*_*tte的帖子

当 ttk 小部件参与时,tkinter 函数会重复两次

tkinter当我简单地使用 的小部件时,该程序将按预期工作。当我使用 的ttk小部件时,程序会重复两次。我几乎尝试了我所知道的一切来解决这个问题,我相信*args这与它有关。有没有办法阻止我的函数_up_options运行两次?

from tkinter import *
from tkinter import ttk
root = Tk()

first = StringVar(root)
second = StringVar(root)
Ore = {'Options': [''], 'Yes': ['One'], 'No': ['Two']}
entry1 = ttk.OptionMenu(root, first, *Ore.keys())
entry2 = ttk.OptionMenu(root, second, '')
entry1.pack()
entry2.pack()


def _up_options(*args):
    print('update_options')
    ores = Ore[first.get()]
    second.set(ores[0])
    menu = entry2['menu']
    menu.delete(0, 'end')

    for line in ores:
        print('for')
        menu.add_command(label=line, command=lambda choice=line: second.set(choice))


first.trace('w', _up_options)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

PS,我*args在我的函数中使用它来工作。如果有人能解释这一点,我将非常感激

tkinter ttk python-3.x

4
推荐指数
1
解决办法
2026
查看次数

标签 统计

python-3.x ×1

tkinter ×1

ttk ×1