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(). Но, чтобы не "лепить", решил спросить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
pelican
  опции профиля:
сообщение 31.8.2009, 16:30
Сообщение #2


Студент
*

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

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




Репутация:   0  


Цитата
по-моему библиотека говорит тебе что нет может слот найти. причем тут в каком месте ты соединяешь сигнал со слотом.
Шлее пишет что можно соединять где хочешь.

Да, это я понял, но слот есть! Только в файле класса потока "addthread.cpp". Почему слот ищется в "mainwindow.cpp"?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 2.12.2024, 15:25