Très bien, je vais commencer par le fait que je suis un GTK et Python newb, mais je n'ai pas été en mesure de trouver l'information dont j'avais besoin. Fondamentalement ce que j'ai est une liste de boutons de radio, et basé sur lequel est vérifié, j'ai besoin de relier un bouton à une fonction différente. J'ai essayé de créer tous mes boutons radio, puis de créer un bloc if/else dégoûtant en vérifiant sget_active() sur chaque bouton. Le problème est le même bouton retourne vrai à chaque fois. Des idées?pyGTK Radio Button Aide
Voici le code utilisé:
#Radio Buttons Center
self.updatePostRadioVBox = gtk.VBox(False, 0)
self.updatePageRadio = gtk.RadioButton(None, "Updating Page")
self.updatePostRadio = gtk.RadioButton(self.updatePageRadio, "Updating Blog Post")
self.pageRadio = gtk.RadioButton(self.updatePageRadio, "New Page")
self.blogRadio = gtk.RadioButton(self.updatePageRadio, "New Blog Post")
self.addSpaceRadio = gtk.RadioButton(self.updatePageRadio, "Add New Space")
self.removePageRadio = gtk.RadioButton(self.updatePageRadio, "Remove Page")
self.removePostRadio = gtk.RadioButton(self.updatePageRadio, "Remove Blog Post")
self.removeSpaceRadio = gtk.RadioButton(self.updatePageRadio, "Remove Space")
#Now the buttons to direct us from here
self.returnMainMenuButton = gtk.Button(" Main Menu ")
self.returnMainMenuButton.connect("clicked", self.transToMain)
self.contentManageHBoxBottom.pack_start(self.returnMainMenuButton, False, False, 30)
self.contentProceedButton = gtk.Button(" Proceed ")
self.contentManageHBoxBottom.pack_end(self.contentProceedButton, False, False, 30)
if self.updatePageRadio.get_active():
self.contentProceedButton.connect("clicked", self.updatePage)
elif self.updatePostRadio.get_active():
self.contentProceedButton.connect("clicked", self.updatePost)
elif self.pageRadio.get_active():
self.contentProceedButton.connect("clicked", self.newPage)
elif self.blogRadio.get_active():
self.contentProceedButton.connect("clicked", self.newBlogPost)
elif self.addSpaceRadio.get_active():
self.contentProceedButton.connect("clicked", self.newSpace)
elif self.removePageRadio.get_active():
self.contentProceedButton.connect("clicked", self.removePage)
elif self.removePostRadio.get_active():
self.contentProceedButton.connect("clicked", self.removeBlogPost)
elif self.removeSpaceRadio.get_active():
self.contentProceedButton.connect("clicked", self.removeSpace)
Vous avez raison. Les boutons sont le chemin à parcourir. Merci d'avoir nettoyé ma stupidité, et pour les leçons sur les boutons radio! – f4nt
Mais si on veut que l'index dans le système de groupe RadioButton ne contienne qu'un actif à la fois, alors on peut faire 'active_radios = [int (i) pour i, r dans enumerate (inversé (r1.get_group())) si r.get_active()] '. Alors 'active_radios [0]' devrait donner l'index nécessaire. – enthusiasticgeek