Wie komme ich an Standardbuttons einer QMessageBox heran, um diese zu manipulieren?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
AFX
User
Beiträge: 51
Registriert: Samstag 4. September 2021, 08:40

Ich habe eine QMessageBox, und dort setze ich die Standarfknöpfe wie folgt:

Code: Alles auswählen

QMessageBox.__init__(self, *args, **kwargs)

self.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
Die Frage ist nun: Wenn ich mit self.standardButtons() ein Standardbuttonsobjekt habe, wie kann ich da die einzelnen Buttons, die ich zuvor gesetzt hatte, herausholen?

Mein endgültiges Ziel ist es nämlich, deren Text zu verändern (also dass da nicht OK oder Cancel steht, sondern etwas anderes).
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn das in der API der Box so nicht angeboten wird, dann geht das nicht. Sich selbst einen Dialog zu bauen ist aber doch auch trivial.
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@AFX: Wenn da was anderes drauf steht, dann sind's keine Standard-Buttons mehr. Der Witz dahinter ist ja gerade, dass dort die Sachen drauf stehen, die dort standardmässig in jeder Anwendung auf dem System auf den Buttons mit der entsprechenden Funktionalität stehen, und auch, dass die in der gleichen Reihenfolge/Anordnung dort stehen, wie in jeder anderen Anwendung.

Allerdings: Werden die bei `buttons()` nicht mitgeliefert? Habe es jetzt nicht getestet, aber wenn es keine Möglichkeit gibt an so ein Button-Objekt zu kommen, würde die `standardButton()`-Methode keinen Sinn machen, die von einem `QAbstractButton` ermittelt welcher `StandardButton` das ist (oder ob es kein Standardbutton ist.)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten