Seite 1 von 1

[gelöst] Konsolenprojekt und connect

Verfasst: 17. Dezember 2007 15:41
von Frostie
Hallo,

ich will in einem Konsolenprojekt das hier machen:

QTimer *timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);

Geht aber nicht, also

this mag er gar nicht und der timer geht auch nicht als auslöser.

Ist es überhaupt möglich, in einem KonsolenProgramm Signals und Slots zu nehmen?

Danke

Verfasst: 17. Dezember 2007 16:01
von upsala
Ist es überhaupt möglich, in einem KonsolenProgramm Signals und Slots zu nehmen?
Ja
this mag er gar nicht
Komische Fehlermeldung...

Verfasst: 17. Dezember 2007 16:43
von Frostie
Ups,

ja, hier die Fehlermeldung:


src/main.cpp: In function ‘int main(int, char**)’:
src/main.cpp:54: error: invalid use of ‘this’ in non-member function

Verfasst: 17. Dezember 2007 16:48
von VuuRWerK
In einer main, welche im übrigen nur eine Funktion ist, gibt es kein this, das gibt es nur in einer Klasse( es repräsentiert dabei das Objekt auf die eigene Klasse selbst ). Ich glaube da fehlen noch etliche C++ Kenntnisse die Du Dir aneignen solltest bevor Du anfängst mit Qt, welches im übrigen durchgängig Objektorientiert ist.

So wie Du QObject::connect benutzt musst Du es in eine Klasse schreiben. Vorher würde ichDir aber anraten Dich mit C++ und der Objektorientierung zu beschäftigen!

Gut Schuß
VuuRWerK ;)

Verfasst: 18. Dezember 2007 00:12
von Frostie
Hm,

also objektorientiert hab ich schon genügend programmiert.

Aber danke. ;-)

Hab nur noch nie ne reine Konsolenanwendung geschrieben, sollte ja nur ein kleines Programm werden, ohne Klassen nur rein iterativ.

Wußte bis jetzt nicht, dass connect an die Objektorientierung gekoppelt ist.

Man lernt nie aus...

Gruß
Matthias

Verfasst: 18. Dezember 2007 09:56
von VuuRWerK
also objektorientiert hab ich schon genügend programmiert.
Anscheinend nicht, sonst wüsstest Du was this ist ...
Wußte bis jetzt nicht, dass connect an die Objektorientierung gekoppelt ist.
Das ist auch gut so!

Nur weil es ein Console-Projekt ist heist es nicht, dass Du nicht Objektorientiert arbeiten brauchst. Arbeite am besten ausschließlich in Klassen und Du hast später einfach weniger Arbeit beim warten und erweitern Deiner Programme. Dazu musst Du aber erstmal die Objektorientierung verstehen ;)

Gut Schuß
VuuRWerK ;)

Verfasst: 18. Dezember 2007 17:35
von Frostie
Jo,

natürlich weiß ich was this heißt. Falls du oben nachlesen möchtest, hab ich NIE behauptet, dass ich this nicht kenne, habe nur erwähnt, dass es in nicht OOP Umgebung nicht geht.

Wollte ja nur wissen ob connect überhaupt ohne OOP geht, dass weiß ich nun! ;-)

Wollte aber das Progrämmchen aus guten Gründen nicht OOP haben.

Aber egal hab das Problem gelöst.

Hm, vielleicht reichen 5 Jahre objektorientiertes proggen einfach nicht ...

Naja egal, ich werd zu alt für den Scheiß...

So long,
Matthias

Verfasst: 18. Dezember 2007 19:17
von VuuRWerK
5 jahre? Und dann schreibst Du this innerhalb einer Funktion und dann auch noch in der main()? Das kauf ich Dir nicht ab, sry, aber das ist jetzt eh OT.

Gut Schuß
VuuRWerK ;)