Bonjour
J'ai actuellement des boutons de menu qui lorsqu'ils sont sélectionnés déclenchent l'affichage d'une boite de dialogue pour la mise modification d'une variable.
Exemple
avec la fonction appelée
Code : Sélectionner tout - Visualiser dans une fenêtre à part serial_port_menu.add_command(label='Choose baud rate... ', command=choose_baud_rate)
Ca fonctionne, mais le fait de devoir mettre la variable baud_rate en global ne me plait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def choose_baud_rate(): """ Ask for and return a new baud rate speed """ global baud_rate baud_rate = int(ask_for_value( title_text='Choose baudrate speed.', message='Specify the baud rate value.', initial_value=baud_rate)) print(f'New baud rate is : {baud_rate}')
Je souhaitais donc modifier cela en
et réaliser l'appel par une fonction lambda directement au niveau du bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def choose_baud_rate(actual_baud_rate): """ Ask for and return a new baud rate speed """ newBaudRate = int(ask_for_value( title_text='Choose baudrate speed.', message='Specify the baud rate value.', initial_value=actual_baud_rate)) print(f'New baud rate is : {newBaudRate}') return newBaudRate
Vous voyez l'idée ?...
Code : Sélectionner tout - Visualiser dans une fenêtre à part serial_port_menu.add_command(label='Choose baud rate... ', command=lambda: baud_rate = choose_baud_rate(actual_baud_rate=baud_rate))
Le problème c'est que je ne comprend pas comment rédiger la fonction lambda pour lui faire exécuter baud_rate = choose_baud_rate(actual_baud_rate=baud_rate)) pour qu'elle exécute choose_baud_rate et assigne la valeur retournée à baud_rate
Partager