Frage

Jedes Mal, wenn ich das Signal / Slot-Editor Dialogfeld verwenden, habe ich aus der bestehenden Liste von Slots zur Auswahl. Die Frage ist also, wie kann ich einen benutzerdefinierten Namen Slot erstellen?

War es hilfreich?

Lösung

Leider ist dies nicht möglich, in Qt4.

In Qt3 Sie benutzerdefinierte Slots erstellen können, die dann in der ui.h-Datei implementiert, wo. Allerdings ist Qt4 nicht diese Datei verwenden, so benutzerdefinierte Slots nicht unterstützt werden.

Es gibt einige Diskussionen über dieses Thema über QtForum

Andere Tipps

rechts auf dem Hauptfenster klicken und „Änderungssignale und Slots“ auswählen und einen neuen Slot hinzuzufügen. Es wird in Ihrem Signal-Slot-Editor angezeigt werden.

Ich bin in der Lage, es zu tun durch:

In MainWindow.h, fügen Sie die Zeile:

public slots:
     void example();

in der Mainwindow-Klasse.

In mainwindow.cpp

void MainWindow::example() {
     <code>
}

Es ist nicht möglich, es zu tun, weil es bedeutet, würden Sie einen Schlitz zu einer bestehenden Qt-Klasse wie QPushButton hinzufügen, die nicht wirklich der Weg zu gehen.

Sie sollten Ihre eigenen QWidget schließlich durch Subklassen einer vorhandenen erstellen. Dann Integration es in Qt Designer als Plugin wie vorgeschlagen. Ihre eigene Klasse ermöglicht es Ihnen, die Signale / Slots zur Verfügung hinzufügen / modifizieren, wie Sie wollen.

Sie über die Schlitz Auto-Verbindungsfunktionen nicht vergessen. Es gibt ein paar Nachteile, wie mit Ihrer Funktion umbenennen, wenn Sie Ihren Widget umbenennen, aber wir verwenden diejenigen viel in meinem Unternehmen.

Sie können den Zauber-Slot-Format von verwenden

void on_objectName_signal() {
// slot code here, where objectname is the Qt Designer object name
// and the signal is the emission
}

Die Verbindung zu dieser Methode wird durch das Verfahren hergestellt connectSlotsByName und immer dann, wenn das Signal ausgesendet wird, wird dieser Schlitz aufgerufen.

Vielleicht wird es helfen.

Standardmäßig haben Sie aus der bestehenden Liste von Slots zur Auswahl. Aber Sie können Slot durch einen Rechtsklick fügen Sie in der Liste auf der rechten Seite von Designer-Objekt und wählen Sie „Slot / Signale“ und fügen Sie Ihren eigenen Slot / Signal. Danach werden Sie es in Signal / Slot-Editor wählen.

Klicken Sie auf das Widget mit der rechten Taste

fördern das Widget in eine Klasse, die Sie definiert

Klicken Sie auf das Widget mit der rechten Taste wieder

werden Sie dieses Signal sehen und Schlitz ist editierbar

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top