Xaar
6th December 2007, 20:34
Hi,
I need help because I stuck, again :o
I subcass QThread:
class Populacja : public QThread
{//
Q_OBJECT
public:
(...)
void getWektor(){ run(); };
signals:
void wyslijOsobnika( QVector<Okrag> );
protected:
void run(){ emit wyslijOsobnika( zbiorOsobnikow[53].getGeny() ); };
}
Code in main class, calls after button is clicked :
void MainWindow::slotDoTestow(){
p = new Populacja(wektorOkragow,100,100);
connect( p, SIGNAL( wyslijOsobnika(QVector<Okrag>) ), &obraz, SLOT( aktualizujZbiorOkregow(QVector<Okrag>) ) );
p->start();
};
Slot:
void RysujacyKolkaWidget::aktualizujZbiorOkregow( QVector<Okrag> wektorOkregow )
{
QMessageBox::information(this, "XXX", " Hello ");
};
This code doesn't work and I don't get QMessageBox:mad:
When I change 'p->start();' to 'p->getWektor();' it works and I get QMessageBox.
I don't know what I'm doing wrong. For me only difference between this two calls is that one is starting QThread and one isn't.
Any clue?
I need help because I stuck, again :o
I subcass QThread:
class Populacja : public QThread
{//
Q_OBJECT
public:
(...)
void getWektor(){ run(); };
signals:
void wyslijOsobnika( QVector<Okrag> );
protected:
void run(){ emit wyslijOsobnika( zbiorOsobnikow[53].getGeny() ); };
}
Code in main class, calls after button is clicked :
void MainWindow::slotDoTestow(){
p = new Populacja(wektorOkragow,100,100);
connect( p, SIGNAL( wyslijOsobnika(QVector<Okrag>) ), &obraz, SLOT( aktualizujZbiorOkregow(QVector<Okrag>) ) );
p->start();
};
Slot:
void RysujacyKolkaWidget::aktualizujZbiorOkregow( QVector<Okrag> wektorOkregow )
{
QMessageBox::information(this, "XXX", " Hello ");
};
This code doesn't work and I don't get QMessageBox:mad:
When I change 'p->start();' to 'p->getWektor();' it works and I get QMessageBox.
I don't know what I'm doing wrong. For me only difference between this two calls is that one is starting QThread and one isn't.
Any clue?