Как изменить значения в OptionMenu tkinter? - PullRequest
0 голосов
/ 17 июня 2020

OptionMenu в tkinter принимает любое количество параметров для опций в меню, например:

import tkinter as tk
newMenu = tk.OptionMenu(self, clicked, "A", "B", command=doSomething)

Есть ли способ обновить количество аргументов в OptionMenu, чтобы я мог go из приведенный выше код к этому новому коду:

newMenu = tk.OptionMenu(self, clicked, "A", "B", "C", "D", command=doSomething)

1 Ответ

3 голосов
/ 17 июня 2020

tk.OptionMenu имеет виджет Menu.

Если вы хотите добавить некоторые значения, вы можете использовать add_command:

for i in ["C","D"]:
    newMenu['menu'].add_command(label=i)

Если вы хотите удалить некоторые значения, используйте delete:

newMenu['menu'].delete("0",tk.END) # this will remove all the values

@ acw1668 указал на большой проблема в моем коде, если вы хотите также привязать команду и изменить переменную clicked.

Рекомендовать это ( acw1668 подсказки):

for i in ["C", "D"]:
    newMenu['menu'].add_command(label=i, command=tk._setit(clicked, i, doSomething))

это тоже мог бы сделать, но не рекомендую:

for i in ["C", "D"]:
    newMenu['menu'].add_command(label=i, command=lambda i=i:clicked.set(i) or doSomething(i))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...