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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Связь дочернего и родительского окна  (Прочитано 2935 раз)
sasha111
Гость
« : Сентябрь 09, 2010, 13:05 »

Имею 2 формы, родительскую и дочернюю, хочу сделать чтоб по клику на кнопке в дочернем окне, в родительском окне поменялся текст в label. Перерыл весь инет(((
Записан
Denjs
Гость
« Ответ #1 : Сентябрь 09, 2010, 13:13 »

надо: читать про сигнал слоты.
  http://qtdocs.narod.ru/4.1.0/doc/html/signalsandslots.html
  http://www.qtinfo.ru/signalsandslots

надо: читать Qt Assisant.
надо: смотреть и разбирать демы и примеры в комплекте с QT
 http://qtdocs.narod.ru/4.1.0/doc/html/tutorial-t2.html
 http://qtdocs.narod.ru/4.1.0/doc/html/tutorial-t5.html

Потом если будет что не понятно - задавайте вопросы.
« Последнее редактирование: Сентябрь 09, 2010, 13:16 от Denjs » Записан
developer
Гость
« Ответ #2 : Сентябрь 09, 2010, 17:03 »

Допустим у тебя есть парент виджет, который генерит дочерний виджет. Тогда дочернему виджету передай ссылку на парента.

где-то так:
//In child widget
QWidget* parentWidget;
void funct(QWidget* parent){
      parentWidget = parent;
      connect(pushButton, SIGNAL("clicked()"), parent, changeLabel());
}

void changeLabel(){
       parentWidget->changeLabel("Any text you want");
}

Ето псевдокод, но надеюсь идея понятна
Записан
Denjs
Гость
« Ответ #3 : Сентябрь 09, 2010, 17:14 »

а если правильнее то - надо генерировать сигнал с сигнатурой типа mySignal(QString).

т.е.
Код:
void childWidget::obButtonClickSlot()
{
       emit mySignal("Any text you want");
}

Этот сигнал предварительно подключить к слоту QLabel::setText(QString).
Код:
QObject::connect(childWidgetObject,SIGNAL(mySignal(QString)), parenWidgetQLabel, SLOT(setText(QString));
« Последнее редактирование: Сентябрь 09, 2010, 17:21 от Denjs » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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