[gelöst] Konsolenprojekt und connect

Verschiedenes zu Qt
Antworten
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

[gelöst] Konsolenprojekt und connect

Beitrag 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
Zuletzt geändert von Frostie am 18. Dezember 2007 17:36, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ist es überhaupt möglich, in einem KonsolenProgramm Signals und Slots zu nehmen?
Ja
this mag er gar nicht
Komische Fehlermeldung...
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag 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
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag 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 ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag 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
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag 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 ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag 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
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag 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 ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Antworten