Python Получите определенное значение метки внутри цикла и получите его с помощью меню вне негоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Получите определенное значение метки внутри цикла и получите его с помощью меню вне него

Сообщение Anonymous »

Простой пример проблемы

Код: Выделить всё

# import * is bad, this is just an example
from tkinter import *

root = Tk()
root.minsize(200, 200)

dict = {"1": ("banane 1", "fresh"), "2": ("banane 2", "not fresh"), "3": ("banane 3", "rotten")}

# Right click label
def openMenuGroup(self):
menuGroup.post(self.x_root, self.y_root)

def closeMenuGroup():
menuGroup.unpost()

menuGroup = Menu(root, tearoff=0)

for key, value in dict.items():
name, quality = value
lab = Label(text=name)
lab.quality = quality
lab.bind("", openMenuGroup)
lab.pack()

menuGroup.add_command(label="Check quality", command=lambda:checkQuality(lab.quality))
menuGroup.add_command(label="Close", command=closeMenuGroup())

def checkQuality(self):
print(self)

mainloop()
Когда вы нажимаете «Проверить качество», всегда возвращается «гнилое» (последняя итерация). Как я могу получить правильное lab.quality для каждой из этих меток?

Подробнее здесь: https://stackoverflow.com/questions/792 ... enu-outsid
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»