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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Взаимосвязь двух форм  (Прочитано 2875 раз)
sandre
Гость
« : Октябрь 06, 2010, 12:24 »

Есть главная форма, и форма ввода неких данных, так вот при заполнение этих данных и закрытия окна, нужно в главном окне получить эти данные, как это реализовать? При закрытии окна ввода данных, объект уничтожается и я не могу из него что либо получить, можно его явно не уничтожать, что не есть хорошо. Можно при закрытии окна передовать напрямую объект с данными в главное окно, НО правильно ли это будет?
Записан
stump
Гость
« Ответ #1 : Октябрь 06, 2010, 13:03 »

Есть главная форма, и форма ввода неких данных, так вот при заполнение этих данных и закрытия окна, нужно в главном окне получить эти данные, как это реализовать? При закрытии окна ввода данных, объект уничтожается и я не могу из него что либо получить, можно его явно не уничтожать, что не есть хорошо.

Лично я определяю наследника от QDialog...Бросаю на него нужные компоненты и создаю ему сигнал, который испускается при завершении ввода данных...В свою очередь, этот сигнал подсоединен к слоту главной формы...

Цитировать
Можно при закрытии окна передовать напрямую объект с данными в главное окно, НО правильно ли это будет?
Думаю правильно...Если смотреть по аналогии, например, с QInputDialog::getText(), то он возвращает QString родителю диалога...
Записан
sandre
Гость
« Ответ #2 : Октябрь 06, 2010, 13:14 »

Цитировать
который испускается при завершении ввода данных
Простите что подразумевается под этим?
Записан
stump
Гость
« Ответ #3 : Октябрь 06, 2010, 13:16 »

Цитировать
который испускается при завершении ввода данных
Простите что подразумевается под этим?

emit signalName(signalParam);

читать здесь:
http://habrahabr.ru/blogs/qt_software/50812/
Записан
crossly
Гость
« Ответ #4 : Октябрь 06, 2010, 14:15 »

Код:
void same_slot()
{
   QDialog d(this);
   if(d.exec()){
      myData=d.getData();
   }
}

упрощенно....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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