crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> СИГНАЛ в главном потоке, СЛОТ - в дочернем, Как правильно связать?
pelican
  опции профиля:
сообщение 31.8.2009, 16:06
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 15
Регистрация: 31.8.2009
Из: Россия, г. Кострома.
Пользователь №: 1038

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем! Собственно, вопрос в заголовке...
Я пытался вызвать connect() в конструкторе класса главного окна. Сам класс потока объявлен в отдельном заголовке.
...
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ...
    connect(ui->actionOpen, SIGNAL(triggered()), addThread, SLOT(add()), Qt::QueuedConnection);
    ...
}
...

Проект компилируется, запускается, но connect() не срабатывает и консоль выводит:
Object::connect: No such slot QThread::add() in .\mainwindow.cpp:28
Object::connect:  (sender name:   'actionOpen')

В потоковой функции run(), только функция exec() (извините за тавтологию).
Подозреваю, что connect() лучше вызвать в run(). Но, чтобы не "лепить", решил спросить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
sploid
  опции профиля:
сообщение 2.9.2009, 17:24
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 26.2.2008
Из: Москва
Пользователь №: 106

Спасибо сказали: 10 раз(а)




Репутация:   1  


pelican, маленькое замечание, слот вызовется не в созданном потоке, а в главном потоке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 9:49