Seite 1 von 1

Probleme mit QTimer

Verfasst: 17. April 2008 21:05
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.

Verfasst: 17. April 2008 21:34
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

Verfasst: 17. April 2008 21:34
von webmaster1987
versuch mal so: QObject::connect( ...

edit: das war aber nur ne Nanosekunde später ;-)

Problem gelöst neues Problem aufgetaucht

Verfasst: 18. April 2008 12:19
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.

Verfasst: 18. April 2008 12:27
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.

Re: Problem gelöst neues Problem aufgetaucht

Verfasst: 18. April 2008 12:29
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.