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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Соединение сигнал - слот между потоком и формой (GUI) проблема !!  (Прочитано 3925 раз)
AntonUfo
Гость
« : Декабрь 23, 2009, 13:07 »

Всем привет. Не могу никак победить проблему. Имеется главная форма, по кнопке запускаю новый поток который встает в очередь потоков, и выполняет требуемые расчеты если очердь не занята. Переопределил метод run потока и посылаю сигнал в статус бар формы, с этим проблем нет, но дело втом что поток так же вызывает "мой класс" в котором выполняются доолгие расчеты, форма не виснет все ок, но вот передать с помощью сигналов и слотов к примеру строчку из моего класса у меня не получается.

ЗЫ: Понимаю что очень путанно объяснил поэтому, выкладываю все исходники в архиве
Записан
BRE
Гость
« Ответ #1 : Декабрь 23, 2009, 16:31 »

Класс Run (или Transaction) нужно сделать наследником QObject (для того, что бы задействовать сигналы/слоты).
В класс Run добавить сигнал changedStatus( const QString &text ).
Эмитить его из Run::run().
Изменить Program::run()
Код
C++ (Qt)
void Program::run()
{
Run *r = new Run();
connect( r, SIGNAL( changedStatus( const QString & ) ),  statusBar(), SLOT( showMessage( const QString & ) ) );
addTransaction( r );
}
 
Записан
AntonUfo
Гость
« Ответ #2 : Декабрь 23, 2009, 17:07 »

Класс Run (или Transaction) нужно сделать наследником QObject (для того, что бы задействовать сигналы/слоты).
В класс Run добавить сигнал changedStatus( const QString &text ).
Эмитить его из Run::run().
Изменить Program::run()
Код
C++ (Qt)
void Program::run()
{
Run *r = new Run();
connect( r, SIGNAL( changedStatus( const QString & ) ),  statusBar(), SLOT( showMessage( const QString & ) ) );
addTransaction( r );
}
 

все равно ничего не передается...... блиин....
« Последнее редактирование: Декабрь 23, 2009, 17:16 от AntonUfo » Записан
MoPDoBoPoT
Гость
« Ответ #3 : Декабрь 23, 2009, 18:13 »

А про макрос Q_OBJECT не забыл?
Записан
BRE
Гость
« Ответ #4 : Декабрь 23, 2009, 18:26 »

2 AntonUfo
Записан
AntonUfo
Гость
« Ответ #5 : Декабрь 24, 2009, 11:23 »

2 AntonUfo
да понимаю я... спасибо огромное.. все работает теперь так как нужно
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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