QDialogButtonBox::addButton ( QAbstractButton * button, ButtonRole role )
einen Button hinzufuege, dann wird dieser Button bei jedem Aufruf der Funktion erneut hinzugefuegt, meine ButtonBox wird also sozusagen immer groesser.
Gibt es einen Weg Qt zu veranlassen diesen Button nur 1 x hinzuzufuegen?
Ich koennte natuerlich eine entsprechende Variable auf true setzen und dann vorher abfraegen, doch erscheint mir das ein wenig sehr primitiv zu sein. Und den Button jedesmal vor verlassen der Funktion mit removeButton zu entfernen klingt fuer mich auch nicht viel eleganter ...
Zuletzt geändert von gboelter am 19. Januar 2008 11:35, insgesamt 1-mal geändert.
Guenther
Davao City, Philippines, Planet Earth, 28°C
Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
Klingt für mich das er den Dialog einmal erstellt, und dann mehrmals aufruft und jedesmal einen Button hinzufügt. Du solltest den Dialog erst erstellen, wenn du ihn auch benutzt. Dann den Button hinzufügen und anzeigen. Qt kümmert sich um das löschen dann von alleine (oder du machst es).
Christian81 hat geschrieben:Solche Dinge werden normalerweise immer nur einmal aufgerufen - wenn nicht ist dein Ansatz falsch...
Was machst Du denn, wenn Du in einer Funktion einen Button hinzufuegen willst, z. B. als Reaktion auf die eine Eingabe in ein LineEdit? Also zum Beispiel damit ....
QPushButton *HelpButton;
HelpButton = new QPushButton(tr("&Help"));
HelpButton->setDefault(true);
buttonBoxBanken->addButton(HelpButton, QDialogButtonBox::ActionRole);
Sobald Du dann - aus welchen Gruenden auch immer - ein zweites Mal in diese Funktion kommst, hast Du einen weiteren Button gleichen Namens in Deiner Maske. Und um hier auf Nummer sicher zu gehen, wuerde ich gerne abfragen koennen, ob 'HelpButton' bereits existiert.
Guenther
Davao City, Philippines, Planet Earth, 28°C
Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
PeterLustig hat geschrieben:Klingt für mich das er den Dialog einmal erstellt, und dann mehrmals aufruft und jedesmal einen Button hinzufügt. Du solltest den Dialog erst erstellen, wenn du ihn auch benutzt. Dann den Button hinzufügen und anzeigen. Qt kümmert sich um das löschen dann von alleine (oder du machst es).
Ich habe hier eine recht umfangreiche Routine zur Validierung von Eingaben und genau da bin ich - wie Du richtig erkannt hast - dann ein zweites mal reingelaufen und hatte somit auch einen zweiten Button.
Und damit sich solch ein Fehler nicht wiederholt suche ich nach einer simplem - moeblichst Qt-eigenen - Moeglichkeit sicherheitshalber vorher abzufragen, ob dieser Button nicht doch schon vorhanden ist.
Guenther
Davao City, Philippines, Planet Earth, 28°C
Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development