Im essayant de faire mon auto menu généré à l'aide de cette boucle:En utilisant DataBase et Dict à Ajouter PyQt5 Menus et Triggers [Python 3]
q3 = connect_menu.addMenu('Q3')
q3menus = {}
x = 0
for element in q3s:
key = 'Q'+str(x)
q3menus[key] = QAction(element[7], self)
q3.addAction(q3menus[key])
q3menus[key].triggered.connect(lambda: self.main_form.consavesv(q3menus[key].text()))
x += 1
q3s
équivaut à une fonction FetchAll qui obtient les données de la dernière SQL requête
q3s = [(1, 'Q3', '127.0.0.1', 28960, "Server Test Name", '5154', '127.0.0.1:28960', "127.0.0.1:28960 | Server Test Name"), (2, 'Q3', '192.168.1.66', 28960, 'Server Test 2', '5154', '192.168.1.66:28960', '192.168.1.66:28960 | Server Test 2')]
J'ai essayé d'utiliser un dictianory, Cette dictianory ajoute des étiquettes de menu et comme il se doit, mais quand je clique sur eux, je ils ont tous la même triggered.connect()
que le dernier fait ..
Qu'est-ce que je fais mal? Je ne veux pas créer des Signaux moi-même ici, Parce que les résultats de la base de données ne sont pas statiques ..
Désolé pour un mauvais anglais.
Je suppose que je devrais ajouter 'triggered.connect()' en dehors de la boucle, mais je ne sais pas alors comment dois-je mettre 'triggered.connect()' pour tous les articles que vous dictianory – DarkSuniuM
pourrait montrer ce que vous obtenez lorsque vous exécutez 'impression (q3s)' – eyllanesc
@ @ yllanesc la question mise à jour et le contenu q3s ajouté – DarkSuniuM