Название: Соединение сигналов и слотов между потоками Отправлено: agm от Ноябрь 26, 2010, 17:06 Есть простая форма отнаследованная от QWidget. В ней по нажатию кнопки запускаем некий набор действий (операции с файлами). Все эти действия реализованы в классе отнаследованном QThread.
Поток запускаем из формы. в констркуторе формы соединяю ее с потоком так: connect(&proc, SIGNAL(sign(int)),SLOT(t(int))); в итоге такая ошибка: error: expected primary-expression before ',' token в чем может быть проблемма? Название: Re: Соединение сигналов и слотов между потоками Отправлено: RedDog от Ноябрь 26, 2010, 17:19 Посылатель сигнала есть в connect, а получателя нету.
Код: connect(&proc, SIGNAL(sign(int)) /*вот тут*/,SLOT(t(int))); Название: Re: Соединение сигналов и слотов между потоками Отправлено: agm от Ноябрь 26, 2010, 17:27 пробовал так
connect(&proc, SIGNAL(sign(int)), this ,SLOT(t(int))); тоже самое Название: Re: Соединение сигналов и слотов между потоками Отправлено: RedDog от Ноябрь 26, 2010, 18:10 весь код покажи
Название: Re: Соединение сигналов и слотов между потоками Отправлено: agm от Ноябрь 29, 2010, 11:13 Пишу подробнее, вот класс формы
Код: class FileFinder : public QWidget { в конструкторе формы соединяем сигнал из потока со слотом в форме Код: connect(&proc, SIGNAL(sign(int)),this,SLOT(t(int))); Код: void FileFinder::t(int w) класс потока Код: class proc : public QThread сигнал sign(int) вызываем в методе run как emit sign(j); Возможно то, что я хочу делается совсем не так? Похожего примера не нашел пока, может кто ссылку даст. Название: Re: Соединение сигналов и слотов между потоками Отправлено: Авварон от Ноябрь 29, 2010, 11:45 Ну класс потока у вас живет в главном потоке. Ищите по форуму, я задолбался уже выкладывать ту ссылку, как правильно с потоками в Qt работать (кстати надо бы доку им поправить, а то там для старых версий пример)
Чтобы работали сигналы/слоты нужен exec() added: последний раз выкладываю http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/ |