Seite 1 von 2
Verschlechterung der Versionen?
Verfasst: 17. Oktober 2007 10:20
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?
Verfasst: 17. Oktober 2007 10:31
von CaptnChaos
das war in der vorgängerversion qt3. in qt4 geht das nicht mehr. das ist aber gewollt.
Verfasst: 17. Oktober 2007 10:36
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?
Verfasst: 17. Oktober 2007 10:43
von Christian81
Das macht uic
Verfasst: 17. Oktober 2007 10:45
von 5000 Watt
einfach zum Ordner wechseln und per Command promt "uic" eingeben?
Verfasst: 17. Oktober 2007 10:48
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.
Verfasst: 17. Oktober 2007 10:52
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)
Verfasst: 17. Oktober 2007 10:52
von CaptnChaos
och mann du warst schneller!
Verfasst: 17. Oktober 2007 10:58
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...
Verfasst: 17. Oktober 2007 11:04
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:
Dort will ich jetzt meinen Slot hinzufügen.
Verfasst: 17. Oktober 2007 11:08
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...
Verfasst: 17. Oktober 2007 11:15
von CaptnChaos
in deiner klasse(im Header) definierst du unter
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???
Verfasst: 17. Oktober 2007 11:24
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.
Verfasst: 17. Oktober 2007 11:25
von CaptnChaos
nein musst du nicht................
lies die doku, das hier bringt nichts.

Verfasst: 17. Oktober 2007 11:35
von 5000 Watt
Ok, ich entschuldige mich hiermit für meine unglaubliche Blödheit.
Ich habe einen Satz im Tutorial überlesen und mich total verkrampft.
Alles funktioniert, und ist super.
DANKE für eure Hilfe.
