Qt Designer: hinzufügen von benutzerdefinierten slot und code auf eine Schaltfläche
Ich nutze Qt4-Designer und ich möchte, dass wenn ich auf die Schaltfläche "ja", code wird ausgeführt. Und wenn ich auf "Nein", ein anderer code, der ausgeführt wird. Wie kann ich es tun?
Hummm! könnte jemand einen Tipp geben, wo im Qt-designer-Dokumentation ist diese Frage gerichtet ? Mich selbst konnte ich nicht finden. Und es ist nicht das signal/slot-Zeug
Es wird signal-und slot-Zeug, für alles, was er zu tun hat, ist das laden der Benutzer-Schnittstelle und verbinden Sie slots, um die Tasten in Frage. Diese sind wirklich Qt-Grundlagen.
danke. Sorry, aber wie schaffen Sie den Steckplatz "my_custom_function", um es zu binden, um die clicked () - signal der Drucktaste auf das Signal/Slot editor. Vielleicht habe ich etwas übersehen, aber ich kann nicht finden die Art und Weise, in der designer-Dokumentation, wo ich nur gefunden, wie binden von sender und Empfänger vordefinierte Signale und slots . Können Sie uns einen link und eine Antwort in dieser Art der OP in Frage?
Es wird signal-und slot-Zeug, für alles, was er zu tun hat, ist das laden der Benutzer-Schnittstelle und verbinden Sie slots, um die Tasten in Frage. Diese sind wirklich Qt-Grundlagen.
danke. Sorry, aber wie schaffen Sie den Steckplatz "my_custom_function", um es zu binden, um die clicked () - signal der Drucktaste auf das Signal/Slot editor. Vielleicht habe ich etwas übersehen, aber ich kann nicht finden die Art und Weise, in der designer-Dokumentation, wo ich nur gefunden, wie binden von sender und Empfänger vordefinierte Signale und slots . Können Sie uns einen link und eine Antwort in dieser Art der OP in Frage?
InformationsquelleAutor pol | 2011-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klicken Sie auf die
Edit Signal/Slots
tool.Erstellen Sie eine Verbindung für Ihre-Taste. Für diese, wählen Sie Ihre Schaltfläche im designer durch drücken der linken Taste der Maus. Bewegen Sie die Maus an eine andere Stelle im Hauptfenster, um eine Verbindung mit dem Hauptfenster (es ist wie eine rote Linie mit einer Erde-Verbindung).
Wenn Sie die Maustaste loslassen, wird die
Configure Connection
- dialog erscheint.In diesem dialog wählen Sie ein signal in der linken text-Steuerung (sender), zum Beispiel
pressed()
.Dann drücken Sie
edit
im rechten Textfeld-Steuerelement (der Empfänger). Ein Dialogfeld für dieSignals/Slots of MainWindow
erscheint.In der slot-panel-fügen Sie einen neuen slot (grünes Kreuz). Der text
slot1()
erscheint. Doppelklicken Sie auf, Bearbeiten Sie die Zeile und schreiben Sie den Namen Ihrer Funktiondoit_when_yes_ispressed()
. Akzeptieren.Nun in der
Configure Connection
dialog sehen Sie Ihre Funktion im rechten Textfeld-Steuerelement. Wählen und Akzeptieren.In der designer jetzt können Sie sehen das signal und Ihre Funktion in das widget.
Nein, Sie können Sie Bearbeiten Sie die slot aus dem designer. In der designer-Sie definieren die Namen von ein slot als signal zu verbinden. Wenn uic ausgeführt wird die automatisch generierte ui_filename.h enthält, eine Verbindung zwischen signal und slot. Beachten Sie, dass es keine Kompilierungsfehler, auch wenn der slot nicht vorhanden ist. Also, Sie haben, um einen Schacht (vorzugsweise privat) in Ihrem .h-Datei und die Implementierung in der .cpp-Datei, die so Ähnlich auch für Python.
Wie hinzufügen, was ich tun muss, pyqt?
Hallo, ich bin mit QT-designer-4.8.6 und in der
Configure Connection
Fenster, dieEdit
option ist ausgegraut (deaktiviert und kann nicht angeklickt werden). Weiß jemand, warum dieses seltsame Verhalten?Gibt es eine automatische Möglichkeit, um den Steckplatz (in designer definiert), um den code (.h und .c) mit der Maus klicken?
InformationsquelleAutor joaquin
Ihre benutzerdefinierten slot-Erklärung und definition für das signal Hinzugefügt werden *.cpp und *.h-Dateien. Sein name wird automatisch generiert.
upd:
Sorry, habe ich nicht bemerkt, dass die Frage über Python & QtDesigner selbst, ich dachte, der designer-Modus in IDE QtCreator. Dies aber immer noch nützlich sein kann für jemanden, der sich für Qt/C++ info, also lasse ich die Antwort.
InformationsquelleAutor volvpavl