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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
serial_port_menu.add_command(label='Choose baud rate... ', command=choose_baud_rate)
avec la fonction appelée
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}')
Ca fonctionne, mais le fait de devoir mettre la variable baud_rate en global ne me plait pas.

Je souhaitais donc modifier cela en
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
et réaliser l'appel par une fonction lambda directement au niveau du bouton
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))
Vous voyez l'idée ?...
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