Je suis en train de créer dynamiquement des boutons à l'exécution avec PyQT4.7Python: génération de nom d'attribut dynamique sans exec() ou eval()
Cependant, ce qui est mon premier programme Python Je ne suis pas sûr de savoir comment obtenir la fonctionnalité que je veux.
Je voudrais être en mesure de remplacer une chaîne de texte pour un nom d'attribut:
à savoir
for each in xrange(4):
myname = "tab1_button%s" % each #tab1_button0, tab1_button1, tab1_button2
#self.ui.tab1_button0 = QtGui.QPushButton(self.ui.tab) <--normal code to create a named button
setattr(self.ui,myname,QtGui.QPushButton(self.ui.tab)) #rewrite of line above to dynamicly generate a button
#here's where I get stuck. this code isn't valid, but it shows what i want to do
self.ui.gridLayout.addWidget(self.ui.%s) % myname
#I need to have %s be tab1_button1, tab1_button2, etc. I know the % is for string substituion but how can I substitute the dynamically generated attribute name into that statement?
Je suppose qu'il ya une construction linguistique de basica Il me manque que le permet. Comme il est mon premier programme, s'il vous plaît reposez-vous sur moi;)
dans ce scénario, les boutons deviennent des noms en ordre numérique , mais dans le programme que j'écris, leurs noms entiers seront tirés d'un dictionnaire, donc je ne suis pas sûr de savoir comment je les garderais sans noms intelligents avec votre exemple – PyNewbie27
Stockez les boutons dans un dictionnaire? – FogleBird