Probleme mit QTimer

Alles rund um die Programmierung mit Qt
Antworten
Seppelhut
Beiträge: 5
Registriert: 6. April 2008 14:57
Wohnort: München

Probleme mit QTimer

Beitrag von Seppelhut »

Hallo an Alle, von einem der wie ein Ochse vorm Berg steht.

Ich habe ein Problem mit folgendem Programm.

Code: Alles auswählen

#include <qapplication.h>
#include <qpixmap.h>
#include <qlabel.h>
#include <qtimer.h>
#include "show.h"



QWidget* showpicture(char*, QWidget*);
int read_SHM();


int main(int argc, char *argv[]){

        int i = read_SHM();
	
	char bild[9];
	char p1[] = "pic1.jpg";
	char p2[] = "pic2.jpg";
	
	if(i%2 == 0){strcpy(bild, p1);}
	else        {strcpy(bild, p2);}
	
	
	QApplication own_app(argc, argv);
	QWidget* own_widget = new QWidget();
		own_app.setMainWidget(own_widget);
		
	QTimer *timer = new QTimer(own_widget);
	connect(timer, SIGNAL(timeout()), own_widget, SLOT(showpicture(bild, own_widget)));
	timer->start(100);
		
	return own_app.enter_loop(); 
	
}



Beim compilieren bekomme ich die Fehlermeldung, dass connect not declared ist.
Habe ich ein Include vergessen, oder gibt es unter qt3 kein connect.
Wie müsste Ich mein Programm umschreiben, damit ich es compilieren kann.

Ich sitze da schon ziehmlich lange dran und langsam bekomme ich den Eindruck ich bin zu DOOF für QT.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

connect ist iirc eine statische methode von QObject, ergo versuchs mal mit

Code: Alles auswählen

QObject::connect( timer, SIGNAL( timeout() ), own_widget, SLOT( showpicture( bild, own_widget ) ) );
mfg,
julian
webmaster1987
Beiträge: 73
Registriert: 2. September 2006 18:30
Wohnort: Köln
Kontaktdaten:

Beitrag von webmaster1987 »

versuch mal so: QObject::connect( ...

edit: das war aber nur ne Nanosekunde später ;-)
DOUBLE ist wie FLOAT nur in HD
Seppelhut
Beiträge: 5
Registriert: 6. April 2008 14:57
Wohnort: München

Problem gelöst neues Problem aufgetaucht

Beitrag von Seppelhut »

Hallo,

Danke erst einmal für die Tipps.
Die Fehlermeldung mit dem connect habe ich nun wegbekommen.

Zum Trost habe ich gleich eine neue Fehlermeldung bekommen.

Code: Alles auswählen

QObject::connect: No such slot QWidget::showpicture(bild, own_widget)
QObject::connect:  (sender name : unnamend)
QObject::connect:  (receiver name: unnamend)
Um das Problem zu lösen habe ich mein Programm erweitert, leider ohne Erfolg.

Code: Alles auswählen

#include.....

...

class main {

public slots: QWidget* showpicture(char*, QWidget*);

};


....
Währe wieder sehr Dankbar für nützliche Tipps.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

connect(timer, SIGNAL(timeout()), own_widget, SLOT(showpicture(bild, own_widget))); 
Es gibt keinen Datentyp bild und own_widget, die Datentypen heißen bei dir 'char *' und 'QWidget *'.
Lies dir bitte die Doku zu Signal und Slots durch und versuche statt 'char *' QString zu verwenden.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Problem gelöst neues Problem aufgetaucht

Beitrag von macman »

Seppelhut hat geschrieben:

Code: Alles auswählen

#include.....

...

class main {

public slots: QWidget* showpicture(char*, QWidget*);

};


....
Wenn das alles ist, dann fehlt Q_OBJECT. Sind schon viele drauf reingefallen, einfach mal die Suche bemühen.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten