Определите, какая кнопка была нажата в Tkinter Python

#python #tkinter

Вопрос:

У меня есть это выпадающее меню, и я хочу знать, какая кнопка нажата:

 btnMenu = Menubutton(f4, text='Select your iPhone:')
contentMenu = Menu(btnMenu)
btnMenu.config(menu=contentMenu)
btnMenu.pack()

btnList = ["iPhone 6", "iPhone 6 Plus","iPhone 6S","iPhone 6S Plus", "iPhone 7", "iPhone 7 Plus","iPhone 8","iPhone 8 Plus","iPhone X"]

 

Например:

 if "iPhone 6" was clicked:
   Do something
if "iPhone 7" was clicked:
   Do something
 

Как я могу это сделать? Спасибо

Комментарии:

1. вы должны добавить команды в меню

2. Как? Вы можете написать код?

Ответ №1:

Попробуй это. Используйте if...else в print_ функции

 from tkinter import *
  
root = Tk()
root.geometry("300x200")
 
menubutton = Menubutton(root, text = "Menu")   
    
menu = Menu(menubutton)  
menubutton["menu"]=menu  
def print_(number):
    print(f"Hey! {number} was clicked!")
btnList = ["iPhone 6", "iPhone 6 Plus","iPhone 6S","iPhone 6S Plus", "iPhone 7", "iPhone 7 Plus","iPhone 8","iPhone 8 Plus","iPhone X"]
for i in btnList:
    menu.add_command(label=i,command=lambda i=i: print_(i))
menubutton.pack()  
root.mainloop()
 

Комментарии:

1. Нет. Я имею в виду, если была нажата кнопка, сделайте что-нибудь. Ваш код определяет только то, какая кнопка была нажата, и выводит ее на экран

2. Я хочу точно знать, на какую кнопку нажали, и создать для этого условие.

3. @HuyVuQuang Я говорю, что number этот параметр содержит текст кнопки, по которой был нажат. Вы можете добавить if утверждение типа if number=='Iphone 6' или if number=='Iphone X'

4. @HuyVuQuang вам не нужно знать, какая кнопка была нажата (если вы действительно это делаете, объясните, потому что я не могу представить ни одного варианта использования), вам нужно добавить команду, которая вызывается при нажатии кнопки