Ich habe ein paar Fragen bezüglich qDialogButtonBox. Während immer noch mein Code funktioniert, glaubte ich, dass es ein paar Teile, die raffinierte besser sein kann/ich nicht viel Informationen finden bin OnlinePyQt - QDialogButtonBox Signale und Tooltipp
class testDialog(QtGui.QDialog):
def __init_(self, parent=None):
...
self.init_ui()
self.signals_connection()
def init_ui(self):
...
self.buttonBox = QtGui.QDialogButtonBox()
self.buttonBox.addButton("Help", QtGui.QDialogButtonBox.HelpRole)
self.buttonBox.addButton("Apply", QtGui.QDialogButtonBox.AcceptRole)
self.buttonBox.addButton("Cancel", QtGui.QDialogButtonBox.RejectRole)
#
def signals_connection(self):
self.test_random.clicked.connect(self.test_rand)
# Is this the latest/correct way to write it?
self.buttonBox.accepted.connect(self.test_apply)
self.buttonBox.rejected.connect(self.test_cancel)
self.buttonBox.helpRequested.connect(self.test_help)
def test_apply(self):
print "I am clicking on Apply"
def test_cancel(self):
print "I am clicking on Cancel"
self.close()
def test_help(self):
print "I am clicking for Help!"
Meine Fragen sind wie folgt:
- Unter meiner Funktion - signals_connection(), die Zeilen, die ich für schrieb die
buttonBox
(obwohl der Code funktioniert noch) sind ganz anders für das Signal I für dieself.test_random
geschrieben haben, und ich bin nicht in der Lage eine ähnliche online für die QDialogButtonBox zu finden .. Es ist ein anderer Stil, den ich habe und -self.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), self, QtCore.SLOT("accept()"))
aber ich denke, das ist der alte Stil ?? Sonst was sollte der richtige Weg sein es zu schreiben? In meiner
test_cancel()
Funktion schreibtself.close()
der beste Weg, um die Anwendung zu schließen? Die Art und Weise, dass ich mein Programm laufen soll, wie folgt:dialog = testDialog();dialog.show()
Schließlich ist es möglich, 3 Tipps anderes Werkzeug an die 3 Tasten hinzuzufügen ich geschaffen habe? Ich habe gesehen, dass es einen Befehl dafür gibt -
self.buttonBox.setToolTip("Buttons for life!")
, aber dies wird dazu führen, dass alle 3 Tasten dieselbe Werkzeugspitze haben. Kann ich es als Individuum machen?
danke für die beschreibenden Informationen. Da ich nicht die Standard-Buttons der QDialogButtonBox verwende, sondern meine Buttons manuell mit 'addButton' erstelle, scheint es so, als könnte ich die erste Methode zum Setzen des Tooltips, die du erwähnt hast, nicht verwenden. Allerdings funktioniert es, wenn ich es über den Text schleife, was super funktioniert! Mit 'self.close()' oder 'self.buttonBox.rejected.connect (self.reject)', obwohl Sie erwähnt haben, dass die Anwendung immer noch geschlossen wird, aber wird es irgendwo im Speicher existieren? – dissidia
@dissidia Ja, wenn Sie immer noch einen Verweis auf den Dialog haben, wird das Dialogobjekt weiterhin existieren und Sie können immer noch auf seine Untersteuerelemente und Widgets zugreifen. Wenn Sie Ihre Verweise darauf löschen, wird möglicherweise Müll gesammelt und nicht mehr existieren. –
Was wird der beste Weg sein, um einen sauberen Abschluss der Anwendung zu machen? – dissidia