Ich hatte ja in dem anderen Thread schon bereits auf den QTranslator hingewiesen, was dir ja aber zu kompliziert war. Hier würde er dir wieder viel Arbeit abnehmen, da die Jungs von Qt schon die qm-Files für Standardbeschriftungen mitliefern und du sie nur noch einbinden musst.
Du kannst aber natürlich auch den Text manuell setzen. Das ergibt aber imho nur dann Sinn, wenn man nicht auf die Standardbeschriftung zurückgreifen will, sondern etwas eigenes braucht/möchte. Wie man das macht, findet man in der Dokumentation von
QMessageBox. Ich habe mir mal ein Minimalbeispiel gebastelt, dass einen einfachen Anwendungsfall zeigt, bitte die Frage/Anworten nicht so ernst nehmen, SCNR
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Minimalbeispiel(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.layout = QtGui.QHBoxLayout(self)
self.pushButton_1 = QtGui.QPushButton(self.tr(u"Drück mich!"), self)
self.pushButton_2 = QtGui.QPushButton(self.tr(u"Mich auch!"), self)
self.dialog_text = u"Will ich die Dokumentation von Qt lesen?"
self.layout.addWidget(self.pushButton_1)
self.layout.addWidget(self.pushButton_2)
self.pushButton_1.clicked.connect(self.button_clicked_1)
self.pushButton_2.clicked.connect(self.button_clicked_2)
self.show()
def button_clicked_1(self):
message_box = QtGui.QMessageBox()
message_box.setStandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No)
message_box.setText(self.dialog_text)
message_box.button(QtGui.QMessageBox.Yes).setText(
self.tr(u"Ja, mache ich!"))
message_box.button(QtGui.QMessageBox.No).setText(
self.tr(u"Nein, nie und nimmer!"))
reply = message_box.exec_()
self.evaluate_reply(reply)
def button_clicked_2(self):
reply = QtGui.QMessageBox.information(self, u"Frage", self.dialog_text,
QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
self.evaluate_reply(reply)
def evaluate_reply(self, reply):
if reply == QtGui.QMessageBox.Yes:
print "Super, alles wird gut!"
else:
print "Das wäre aber besser! ;)"
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
translator.load("".join(["qt_",str(QtCore.QLocale().system().name())]),
QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath))
app.installTranslator(translator)
fenster = Minimalbeispiel()
sys.exit(app.exec_())