Signal Slot Editor - Verbinden mit private slots

Verschiedenes zu Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Signal Slot Editor - Verbinden mit private slots

Beitrag 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
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Soweit ich weiß, geht das mit dem Qt4-Designer nicht mehr.
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag 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.
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag 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'.
Antworten