QT4 Designer und Slots
-
Wie kann ich beim Designer von QT4 Signals mit meinen eigenen Slots verbinden?
Wenn ich das richtig verstanden habe, schreibe ich die einfach in die Klasse des Widgets und dann müsste der Designer die automatisch finden und mir zur Auswahl anbieten, tut er allerdings nicht.
In QT3 hat man seine Slots in ne extra Datei geschrieben die man innerhalb des Designer bearbeiten konnte, aber anscheinend handhabt QT4 das anders, nur auf das wie bin ich noch nicht gekommen.
In den Dokus wird es leider nicht richtig erklärt, anscheinend ist es selbstverständlich...
-
Du wählst beim Designer den "Signal & Slots Editor" aus.
Dann klickst du auf das "+" um eine neue Verbindung zu erzeugen. Nun kannst du die verschiedenen Signale über die Listboxen verbinden.
-
Das ist mir bewusst, nur stehen dort keine Slots (nur die von der Basisklasse, wenn ich den Haken, für alle Slots anzeigen, hinmache).
Wenn ich ein clicked()-Signal von einem Button mit einem Slot auf dem Form verknüpfen will. Wo/wie trage ich meinen Slot für das Form ein?Angenommen der Slot soll "void onClick()" heißen.
-
wenn ich das richtig verstanden hab (qt4 meine ich), dann muss man das manuel in der datei, welche die ui included machen.
ergo:
blub.uiblub.cpp:
#include<ui_blub.ui> ... class xy : public blub { ... { connect(..); } }
verstaendlich? sonst fragen..
ka, ob du diese seite schon kennst:
http://doc.trolltech.com/4.1/designer-using-a-component.html
(da steht auch, wie man das automatisch machen kann)ich hoffe, dass ich dir helfen konte..
mfg aman..
-
Danke für den Link, aber auch wenn ich der Namensgebung folge, wie sie dort beschrieben ist, kann ich den slot nicht auswählen im Designer.
-
auswaehlen geht meines wissens nicht.
dem designer kann man ja auch nicht sagen, wo die quelldateien liegen sollen..
mfg aman..
-
Heißt das eine Funktion "void on_pushButton_clicked()" wird automatisch mit dem Objekt "pushButton" verbunden(connect'ed) durch den uic?
-
ja..
theoretisch schon..
(wenn es keinen fehler etc gibt..)mfg aman..
-
Ah, das ist natürlich auch ne feine Sache.