Russian Qt Forum
Ноябрь 24, 2024, 20:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT3 может QThread отправлять сигналы?  (Прочитано 3091 раз)
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).
Это значит что сигналы в принципе отправить нельзя?
Спасибо.

Записан
Karl-Philipp
Гость
« Ответ #1 : Апрель 26, 2010, 09:59 »

Множественное наследование от двух классов, порожденных от QObject, запрещено. Да и зачем наследоваться от QObject, если QThread и так его потомок?
Записан
BRE
Гость
« Ответ #2 : Апрель 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);
};
 

Но, нормально это работать все равно не будет, воспользуйся для этого событиями. В примерах это все есть.
« Последнее редактирование: Апрель 26, 2010, 10:20 от BRE » Записан
alexman
Гость
« Ответ #3 : Апрель 26, 2010, 10:31 »

void QApplication::postEvent ( QObject * receiver, QEvent * event ) 
Записан
myr
Гость
« Ответ #4 : Апрель 26, 2010, 10:33 »

Спасибо.
Сделала  через события.
В примерах QT4 есть вариант с сигналами - кода меньше.
Записан
alexman
Гость
« Ответ #5 : Апрель 26, 2010, 14:26 »

Спасибо.
Сделала  через события.
В примерах QT4 есть вариант с сигналами - кода меньше.
В qt3 сигналы-слоты не потокобезопасны!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.146 секунд. Запросов: 21.