Dialogimplementierung mit Kdevelop
-
alfonsospringer
- Beiträge: 75
- Registriert: 25. September 2007 20:03
Dialogimplementierung mit Kdevelop
Ich versuche grade von QDevelop auf Kdevelop umzusteigen, weil QDevelop immer abstürzt. Das grundlegende Erzeugen eines Fensters, dass im Designer erstellt wurde klappt schon - aber ich verstehe noch nicht ganz wie die Implementierung funktioniert. Kennt sich jemand mit Kdevelop aus? Ich habe meine Form mittels dem Subclassing Wizzard subclassed und danach mit "Create or Select Implementation" auf die Subclass eine Implementation erstellt. Wenn ich nun in der main.cpp eine Instanz der neuen Klasse erstelle, sie anzeigen lasse und das Programm kompiliere klappt Alles und das Fenster wird richtig angezeigt. Nun möchte ich aber natürlich, dass meine Köpfe, etc. auch etwas bewirken, daher stellt sich mir die Frage, wie ich die gewünschten Slots in die Klasse bekomme. Bei QDevelop gabs ein Implement Menü, in dem alle Buttons, etc. mit allen möglichen Slots angezeigt wurden, aus dem man die Slots auswählen konnte, die man implementieren möchte. Wie geht das bei Kdevelop?
Danke schonmal
Danke schonmal
-
-=Freaky=-
- Beiträge: 503
- Registriert: 29. Dezember 2006 22:54
- Wohnort: HL
du willst also im prinzip wissen, wie du in deine abgeleitete klasse slots bekomst?
dann connecten per connect (QObject::connect).
oder hab ich dich falsch verstanden?
mfg,
julian
Code: Alles auswählen
class MyClass: public MyDesignerDlg
{
public slots:
publicSlotOne()
{
// sonstwas tun
}
};oder hab ich dich falsch verstanden?
mfg,
julian
-
alfonsospringer
- Beiträge: 75
- Registriert: 25. September 2007 20:03
-
alfonsospringer
- Beiträge: 75
- Registriert: 25. September 2007 20:03
Angenommen, dass du ein Programm schreibst, in dem hunderte von Buttons drin sind: Müsstet du dann jeden Button einzeln mit connect an eine Funktion binden? Die Signal-Slot Funktion vom Designer hilft einem ja überhaupt nicht, wenn das Signal nicht direkt an einen Slot eines anderen Widgets gebunden werden soll, oder?
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Designer ist absolut NUR für das "Design" da. Jegliche Funktionalität musst du im Code machen. Natürlich erstellt dir der Designer auch ein paar Codezeilen... die sind aber nur Eigenschaften. Funktionalität musst du selbst implementieren, in dem du von der generierten Klasse eine neue Klasse ableitest. Steht soweit ich mich entsinne auch alles in der Designer-Anleitung.
-
alfonsospringer
- Beiträge: 75
- Registriert: 25. September 2007 20:03
Das mag wohl sein. Ich habe grade etwas gefunden, was mir villeicht das Leben erleichten könnte:
void QMetaObject::connectSlotsByName ( QObject * object )
In der automatisch generierten ui_window.h wird diese Funktion bereits aufgerufen. Könnte ich villeicht in meiner abgeleiteten Klasse dann einfach Slots vom Typ void on_button1_clicked() einfügen? Wenn das ginge könnte man sich zumindest die ganzen connects ersparen...
zZ. liefert mir dieser Slot eine Fehlermeldung:
"window.cpp:24: error: function definition does not declare parameters"
void QMetaObject::connectSlotsByName ( QObject * object )
In der automatisch generierten ui_window.h wird diese Funktion bereits aufgerufen. Könnte ich villeicht in meiner abgeleiteten Klasse dann einfach Slots vom Typ void on_button1_clicked() einfügen? Wenn das ginge könnte man sich zumindest die ganzen connects ersparen...
zZ. liefert mir dieser Slot eine Fehlermeldung:
"window.cpp:24: error: function definition does not declare parameters"
Code: Alles auswählen
void window:on_button_clicked()
{
button->setText("Hallo");
};
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
-
alfonsospringer
- Beiträge: 75
- Registriert: 25. September 2007 20:03