Verschlechterung der Versionen?

Alles rund um die Programmierung mit Qt
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Verschlechterung der Versionen?

Beitrag von 5000 Watt »

Hallo,

ich habe ein Mini-Problem:

In älteren Version vom QT-Designer konnte man den Sourcecode recht einfach über Rechtsklick->Source anzeigen lassen, geht das in der Version 4.3 für Windows nicht mehr?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

das war in der vorgängerversion qt3. in qt4 geht das nicht mehr. das ist aber gewollt.
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Beitrag von 5000 Watt »

Aber ich kann doch im Designer Slots und Connections festlegen, wie wandel ich mir das in Code um? Oder muss ich das im Designer festlegen und dann nochmal im Quellcode?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das macht uic
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Beitrag von 5000 Watt »

einfach zum Ordner wechseln und per Command promt "uic" eingeben?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

5000 Watt hat geschrieben:einfach zum Ordner wechseln und per Command promt "uic" eingeben?
Einfach mal die Doku lesen...

qmake erzeugt Dir ein Makefile und dort werden die .ui - Dateien in C++ - Code gewandelt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

nein, das passiert automatisch wenn du ein projekt erstellst. Der vorgang ist ja folgender:
1. Du rufst qmake -project auf -> eine .pro Datei wird erstellt.
2. Du rufst qmake auf -> Temporäre Ordner und Makefile wird erstellt. In der Makefile ist definiert, was mit welchen Dateien gemacht werden soll.
3. Du rufst make auf -> alles was in der Makefile steht wird bearbeitet (uic für ui Dateien aufrufen, gcc für sourcen aufrufen, moc für Q_OBJECT makromatisierte header aufrufen, rcc für qrcDateien aufrufen)
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

och mann du warst schneller!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

KernelPanic hat geschrieben:och mann du warst schneller!
Aber Du hast es besser erklärt :)
Wobei ich davon ausgehe das dies Basics sind die man wissen sollte bevor man hier postet - ein bischen Einarbeiten + Tutorials lesen sollte schon drin sein...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Beitrag von 5000 Watt »

Kann sein, dass ich gerade voll auf dem Schlauch stehe, aber in welcher Datei sind jetzt die von mir angelegten Signale u. Slots zu finden?

Die Sache ist die:
Ich habe ein Projekt, dort ist eine LineEdit und ein PushButton, wenn ich auf den Pushbutton klicke, soll sich ein Filebrowser öffnen und die, vom User ausgewählte Dateipfad, in die LineEdit kopieren. Dazu muss ich die Slots bearbeiten, da ich aber noch viel mehr Slots angelegt habe, diesmal im Designer, brauche ich die Datei, in der diese liegen.

In dem Tutorial steht irgendwo was von einer Klasse, die folgende Passage enthält:

Code: Alles auswählen

      public Slots:
           void mySlot();
Dort will ich jetzt meinen Slot hinzufügen.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Hm, mich hat mein BSD solange getrietzt, bis ich endlich verstanden hab wie das mit den Makefiles funktioniert... Die Unixe sind da gnadenlos. Und dann noch qmake zu verstehen war eig nicht schwer.

@5000 Watt: Du solltest dir wirklich angewöhnen erst mal die dokus gründlich zu lesen. Wenn du dir einen neuen Fernseher oder ein Auto kaufst guckst du ja auch erstmal in die Bedienungsanleitung...
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

in deiner klasse(im Header) definierst du unter

Code: Alles auswählen

public slots:
	void mySlot();
dann in der source connectest du den slot und schreibst die Funktion:

Code: Alles auswählen

MyClass::MyClass()
{
	//einige andere sachen hier
	connect(iwas, SIGNAL(einSignal()), this, SLOT(,ySlot()));
}
void MyClass::mySlot()
{
	int c = sqrt(a*a + b*b) 
}
so machst du einen slot.

Wo der dann steht (in den moc dateien ) ist egal. Was er macht steht in deinen Dateien. Mehr brauchst du nicht zu wissen.

PS: Wofür sind eig tutorials da wenn man nicht rafft was drinsteht???
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Beitrag von 5000 Watt »

So, soweit war ich auch schon, meine Frage war ja, warum muss ich alle Slots per "connect(...)" verbinden, wenn ich das im Designer schon getan habe? Es wäre doch viel besser, wenn mir der Designer per Knopfdruck die Header mit allem dem Code erstellt, der schon im Designe vorhanden ist.

Ich habe 16 Slots im Designer gelegt un muss diese nun in meinem Header nochmal verbinden.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

nein musst du nicht................
lies die doku, das hier bringt nichts. :roll:
5000 Watt
Beiträge: 19
Registriert: 17. Oktober 2007 09:28

Beitrag von 5000 Watt »

Ok, ich entschuldige mich hiermit für meine unglaubliche Blödheit. :oops:

Ich habe einen Satz im Tutorial überlesen und mich total verkrampft.

Alles funktioniert, und ist super.


DANKE für eure Hilfe. :roll: :roll:
Antworten