J'ai trouvé le problème:
Le code corrigé:
from tkinter import * import cv2 def create(): source = Toplevel(root) source.geometry('400x400') mylabel = Label(source,text = 'test') mylabel.pack(pady=10) #liste2 = Listbox(source) #liste2.insert(1, "Blue") #liste2.pack() # lister_camera(source) camera_indexes = [] for i in range(10): cap = cv2.VideoCapture(i) if cap.isOpened(): camera_indexes.append(i) cap.release() # Ajout de la liste des caméras à la fenêtre if camera_indexes: mylabel2 = Label(source, text="Caméras disponibles : ") mylabel2.pack() camera_listbox = Listbox(source) for index in camera_indexes: camera_listbox.insert(index, f"Caméra {index}") camera_listbox.pack() else: mylabel3 = Label(source, text="Aucune caméra disponible") mylabel3.pack() def hello(): print("hello world!") root = Tk() root.geometry('400x500') btn = Button(root, text="Source", command = create) btn.pack(pady = 10) # créer un menu menubar = Menu(root) # créer un sous-menu filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="New", command=hello) filemenu.add_command(label="Open", command=hello) filemenu.add_command(label="Save", command=hello) menubar.add_cascade(label="File", menu=filemenu) menubar.add_command(label="Quit!", command=root.quit) root.config(menu=menubar) root.mainloop()