Russian Qt Forum

Qt => Общие вопросы => Тема начата: AntonUfo от Декабрь 23, 2009, 13:07



Название: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: AntonUfo от Декабрь 23, 2009, 13:07
Всем привет. Не могу никак победить проблему. Имеется главная форма, по кнопке запускаю новый поток который встает в очередь потоков, и выполняет требуемые расчеты если очердь не занята. Переопределил метод run потока и посылаю сигнал в статус бар формы, с этим проблем нет, но дело втом что поток так же вызывает "мой класс" в котором выполняются доолгие расчеты, форма не виснет все ок, но вот передать с помощью сигналов и слотов к примеру строчку из моего класса у меня не получается.

ЗЫ: Понимаю что очень путанно объяснил поэтому, выкладываю все исходники в архиве


Название: Re: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: BRE от Декабрь 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 );
}
 


Название: Re: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: AntonUfo от Декабрь 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 );
}
 

все равно ничего не передается...... блиин....


Название: Re: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: MoPDoBoPoT от Декабрь 23, 2009, 18:13
А про макрос Q_OBJECT не забыл?


Название: Re: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: BRE от Декабрь 23, 2009, 18:26
2 AntonUfo


Название: Re: Соединение сигнал - слот между потоком и формой (GUI) проблема !!
Отправлено: AntonUfo от Декабрь 24, 2009, 11:23
2 AntonUfo
да понимаю я... спасибо огромное.. все работает теперь так как нужно