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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Вызов SLOT из дочернего класса - нет реакции  (Прочитано 2398 раз)
Andrew12
Гость
« : Ноябрь 08, 2010, 14:36 »

Здравствуй многоуважаемый all,

Полный тупик в следующей ситуации. Есть программа
main.cpp
Код:
QMainWindow *mw;
classa2 var1;
var1.subcall(mw);

classa2.cpp
Код:
void classa2::subcall(QMainWindow *mw) {
classa3 var2;
var2.createtest(mw);
}

и наконец classa3.cpp
Код:
void classa3::temp() {
    qDebug() << "Example test";
}

void classa3::createtest(QMainWindow *mw) {
QPushButton *pbt2 = mw->findChild<QPushButton*>("pbtMenu");
QObject::connect(pbt2,SIGNAL(clicked()),this,SLOT(temp()));
}

Так вот: 1. Функция-слот temp() - рабочая
2. Сигнал-слот создается (об этом говорит pbt2->dumpObjectInfo()Подмигивающий
3. Ошибок нет, но реакция на нажатие кнопки отсутствует.

Если перенести вызов createtest из classa2 в main.cpp - все работает. Вопрос: это что же получается connect создается только из главного int main или у меня руки кривые?
« Последнее редактирование: Ноябрь 09, 2010, 00:06 от Andrew12 » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 08, 2010, 14:55 »

Как все запутано...
classa3 var2;
var2.createtest(mw);
var2 создан на стеке и при выходе из функции будет разрушен. Т.е. коннект никчему.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Andrew12
Гость
« Ответ #2 : Ноябрь 08, 2010, 17:50 »

Большое спасибо, многоуважаемый, Пантер. Дело стронулось с мертвой точки, процесс написсания пошел далее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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