Russian Qt Forum

Qt => Общие вопросы => Тема начата: myr от Апрель 26, 2010, 09:35



Название: QT3 может QThread отправлять сигналы?
Отправлено: myr от Апрель 26, 2010, 09:35
Здраствуйте. У меня графическое приложение.

class TEventThread:public QThread,public QObject {
public:
     TEventThread();
     virtual void run();
signals:
     void pr(int);
};

void TEventThread::run()
{
        for(int i =0 ;i<=100;++i){
          usleep(100000);
          emit pr(i); 
      }
}


При компиляции пишет  - thread_sv.obj : error LNK2001: unresolved external symbol "protected: void __thiscall TEventThread::pr(int)" (?pr@TEventThread@@IAEXH@Z).
Это значит что сигналы в принципе отправить нельзя?
Спасибо.



Название: Re: QT3 может QThread отправлять сигналы?
Отправлено: Karl-Philipp от Апрель 26, 2010, 09:59
Множественное наследование от двух классов, порожденных от QObject, запрещено. Да и зачем наследоваться от QObject, если QThread и так его потомок?


Название: Re: QT3 может QThread отправлять сигналы?
Отправлено: BRE от Апрель 26, 2010, 10:11
Множественное наследование от двух классов, порожденных от QObject, запрещено. Да и зачем наследоваться от QObject, если QThread и так его потомок?
В Qt3 это не так, там QThread не является наследником QObject.

2 myr Ты наверное хотел сделать что-то типа этого:
Код
C++ (Qt)
class TEventThread : public QObject, public QThread
{
Q_OBJECT
public:
TEventThread();
virtual void run();
signals:
void pr(int);
};
 

Но, нормально это работать все равно не будет, воспользуйся для этого событиями. В примерах это все есть.


Название: Re: QT3 может QThread отправлять сигналы?
Отправлено: alexman от Апрель 26, 2010, 10:31
void QApplication::postEvent ( QObject * receiver, QEvent * event ) 


Название: Re: QT3 может QThread отправлять сигналы?
Отправлено: myr от Апрель 26, 2010, 10:33
Спасибо.
Сделала  через события.
В примерах QT4 есть вариант с сигналами - кода меньше.


Название: Re: QT3 может QThread отправлять сигналы?
Отправлено: alexman от Апрель 26, 2010, 14:26
Спасибо.
Сделала  через события.
В примерах QT4 есть вариант с сигналами - кода меньше.
В qt3 сигналы-слоты не потокобезопасны!