Seite 1 von 1
Signal Slot Editor - Verbinden mit private slots
Verfasst: 24. Februar 2008 22:14
von pospiech
Ich benutze als Editor Eclipse mit der Qt Integration. Also auch den integrierten Designer. Ich möchte nun einen private Slot, den ich in mainwindowimpl.h hinzugefügt habe in dem Dialog als Slot hinzufügen.
Die selbstdefinierten slots werden mir im Signal-slot Editor jedoch nicht angeboten.
Geht das nicht, oder mache ich was falsch ?
Matthias
Verfasst: 26. Februar 2008 14:05
von Flachkoepper
Soweit ich weiß, geht das mit dem Qt4-Designer nicht mehr.
Verfasst: 26. Februar 2008 14:09
von pospiech
Flachkoepper hat geschrieben:Soweit ich weiß, geht das mit dem Qt4-Designer nicht mehr.
Aha. Ich habe nur den Eindruck das die Attraktivität vom Signal Slot Prinzip sehr gering wird wenn man Oberflächenelemente grundsätzlich manuell im Code mit Funktionen verbinden muss. Daher wundert es mich sehr das das nicht gehen soll.
Wie ging das denn früher?
Matthias
Verfasst: 26. Februar 2008 14:59
von Flachkoepper
Bei Qt3 konnte man direkt im Designer neue slots definieren und auf der Form mit Signalen verbinden. Keine Ahnung, warum die das bei Qt4 abgeschafft haben. Andererseits sind es jetzt ja auch nur 3 Zeilen mehr: Slot definieren, connecten, Funktionsrumpf in der Implementierung. Also imho auch nicht sooo tragsich.
Verfasst: 26. Februar 2008 15:07
von pospiech
Flachkoepper hat geschrieben:Bei Qt3 konnte man direkt im Designer neue slots definieren und auf der Form mit Signalen verbinden. Keine Ahnung, warum die das bei Qt4 abgeschafft haben. Andererseits sind es jetzt ja auch nur 3 Zeilen mehr: Slot definieren, connecten, Funktionsrumpf in der Implementierung. Also imho auch nicht sooo tragsich.
Naja, es ist schon einiges:
1. Slot Funktionsrumpf in datei.h definieren
2. Funktion in datei.cpp schreiben
3. Objektnamen des Senders raussuchen
4. "connect(Objektname" schreiben
5. In Dokumentation von Klasse(Objektname), z.B. QButton nach möglichen Sendern suchen
6. "connect(Objektname, SIGNAL(function())," schreiben
7 erweitern um Klasse und Ziel Slot
8. "connect(Objektname, SIGNAL(function()), this, SLOT(slotfunction()));" schreiben
Verglichen mit Visual Studio und MFC Forms ist das ne Menge. Da klickt man einfach nur auf das Objekt -> Rechte Maustaste -> Ereignishänder hinzufügen -> (Auswahl des Senders und Verändern des Funktionsnamens wenn nötig) OK klicken.
Dabei müsste mich der Designer eigentlich nur nach der datei.h die zur .ui Datei gehört fragen und wüsste alle selbst definiert slots.
Verfasst: 26. Februar 2008 16:00
von Christian81
Der Designer ist zum designen da, nicht zum programmieren. Deshalb wurde das in Qt4 zurückgebaut. Und was Du alles aufzählst ist nun wirklich innerhalb von einer halben Minute erledigt - vor allem wenn man noch VS inklusive Intellisense hat.
Verfasst: 26. Februar 2008 16:09
von pospiech
Christian81 hat geschrieben:Der Designer ist zum designen da, nicht zum programmieren. Deshalb wurde das in Qt4 zurückgebaut. Und was Du alles aufzählst ist nun wirklich innerhalb von einer halben Minute erledigt - vor allem wenn man noch VS inklusive Intellisense hat.
Mir ist schon klar, dass das alles möglich ist. Es erschließt sich mir nur nicht logisch warum man selbst definierte Slots nicht auswählen können soll.
Aber im Grunde ist meine Frage jetzt damit beantwortet das diese Funktion definitiv nicht vorhanden ist.
Matthias
Verfasst: 26. Februar 2008 16:43
von gerome69
pospiech hat geschrieben:
Verglichen mit Visual Studio und MFC Forms ist das ne Menge. Da klickt man einfach nur auf das Objekt -> Rechte Maustaste -> Ereignishänder hinzufügen -> (Auswahl des Senders und Verändern des Funktionsnamens wenn nötig) OK klicken.
Dabei müsste mich der Designer eigentlich nur nach der datei.h die zur .ui Datei gehört fragen und wüsste alle selbst definiert slots.
Meiner Meinung nach ist das die falsche Einstellung.
Wenn du das alles im Designer per KlickiBunti machen könntest, dann würdest du auch nie das Prinzip hinter connect/SIGNAL/SLOT verstehen.
Solche typischen Fragen wie "Warum wird denn dieses Signal nicht von meinem Slot empfangen?" sind dann vorprogrammiert.
Und mir fällt bei deinen vielen Postings der letzten Zeit auf, daß du immer nach schnellen Lösungen suchst, aber dich nie mit der Materie intensiv beschäftigst. Eine solide Wissensbasis bekommt man so nie.
Gruß, Gérôme
Verfasst: 26. Februar 2008 16:55
von pospiech
gerome69 hat geschrieben:
Und mir fällt bei deinen vielen Postings der letzten Zeit auf, daß du immer nach schnellen Lösungen suchst, aber dich nie mit der Materie intensiv beschäftigst. Eine solide Wissensbasis bekommt man so nie.
Über Einstellungen diskutiere ich ungerne und möchte diese Diskussion hier auch nicht weiterführen. Aber deine Meinung zu meiner "Problemslösungsstrategie" kann ich überhaupt nicht nachvollziehen. Zum einen da ich in den letzten zwei Wochen praktisch keine Frage zur Programmierung, sondern nur zur Bedienung und Auswahl von Programmen gestellt habe und zum anderen da ich wenn überhaupt an Qt nur in der Freizeit programmiere. Das 'intensiv' beschäftigen ist somit auf einen langen Zeitraum gesehen weniger 'intensiv'. Und das ich mich in der Qt API bislang nicht auswendig kenne ist für jemanden der sich in eine API einarbeitet wohl auch kaum verwunderlich. Ich arbeite also an einer 'Wissensbasis'.