Seite 1 von 1

anfänger problem

Verfasst: 25. Mai 2008 19:55
von Over
tag.

ich fang grad an mich in qt reinzuarbeiten.
hab n kleines prog geschrieben was label text ändert wenn ich n button anklick.
hier der code: http://www.nopaste.org/p/a2FClbqQl
funzt auch alles wunderbar. das problem ist auch nicht die text änderung sondern:

Code: Alles auswählen

connect(button1,SIGNAL(clicked() ),this,SLOT(quit() ) );
da beendet er nämlich nicht sondern macht garnix.
seltsam daran is ja auch dass es im buch genauso steht.. :?
hoffe ihr könnt mir nochmal helfen. ^^

Verfasst: 25. Mai 2008 20:12
von Over
naja gut, ich habs nun so gemacht wie ichs mir eh gedacht hab.

Code: Alles auswählen

public:
   MyWindow(QApplication &a,QWidget *parent=0);
[...]
   connect(button1,SIGNAL(clicked() ), &a,SLOT(quit() ) );
[...]
//main
QApplication app(argc,argv);
MyWindow* window=new MyWindow(app);
da frag ich mich aber nun immernoch warums im buch mit this steht :o

Verfasst: 25. Mai 2008 20:17
von Picaschaf
Du musst btw. nicht unbedingt eine Referenz auf dein QApplication Objekt dem Fenster mitgeben. Es gibt eine globale: qApp. Siehe Doku.

Verfasst: 25. Mai 2008 20:37
von PeterLustig
Entweder du missverstehst das Buch, oder es steht dort falsch. Vielleicht ist es auch für Qt3 und nicht Qt4? Naja. Hast du denn C++ Kenntnisse? Du solltest die Sprache schon vorher können.

Du verbindest das Signal clicked des Buttons mit dem Slot "quit" deiner "MyWindow" Klasse. Die hat aber garkeinen Slot quit, und ich denke auch nicht das du ihn selbst definiert hast. Deswegen wir in der Konsole auch eine Fehlermeldung stehen.

Verfasst: 25. Mai 2008 21:02
von Over
ehm ja ich hab genügend cpp kenntnisse....
dieses this hat mich generell verwundert, aber naja, hab erstma geguckt obs so funzt wies da steht, is schließlich von galileo computing.
das cpp buch hat mich auch nie falsch beraten.. na gut, dann steht da nun wohl n fehler drin. t.t

Verfasst: 26. Mai 2008 11:23
von moviemax
So richtig hast Du es aber gar nicht abgeschrieben.

Der Slot quit() bezieht sich nicht auf QApplication sondern auf QWidget
moviemax