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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDialog  (Прочитано 6202 раз)
Sir_J
Гость
« : Июль 07, 2005, 18:11 »

У меня в проекте 2 формы QDialog
одна вызывается из другой по forma->exec();
Как мне из дочерней формы получить доступ к елементу родительской формы
спасибо.
Записан
Sergeich
Гость
« Ответ #1 : Июль 08, 2005, 09:57 »

Если ты в конструкторе 2-ого диалога родителем поставил 1-ый, то юзай ( ( FirstDialogType* ) parent() )->....
Записан
Sir_J
Гость
« Ответ #2 : Июль 08, 2005, 15:04 »

Цитата: "Sergeich"
Если ты в конструкторе 2-ого диалога родителем поставил 1-ый, то юзай ( ( FirstDialogType* ) parent() )->....

Ваша конструкция немного непонятна.
Проблему решил так
 ((mainForm *)(this->parentWidget()))->element->property
Записан
Svetlana
Гость
« Ответ #3 : Май 31, 2007, 14:33 »

Создается объект класса - наследника QDialog, немодальный. Он всегда будет перекрывать виджет - родитель? Qt 3.3.4.
Записан
BaltikS
Гость
« Ответ #4 : Май 31, 2007, 14:46 »

В 3 если ты перекрываешь QDIALOG, то он всегда будет модальным. ЧТО значит перекрывать родителя?
Записан
Svetlana
Гость
« Ответ #5 : Май 31, 2007, 15:11 »

Цитата: "BaltikS"
В 3 если ты перекрываешь QDIALOG, то он всегда будет модальным. ЧТО значит перекрывать родителя?

Так. Модальный диалог - не дает вернуться в родительское окно без своего закрытия. Окно OnTop в самом общем смысле перекрывает все остальные окна. Если в частности, это немодальный диалог, то он перекрывает все окна, но дает возможность пользователю взаимодействовать с родительским окном. Так же? Вот у меня крошечный
Код:
class ShowROTextDialog
: public QDialog
{
Q_OBJECT
public:
ShowROTextDialog
( const QString & text
, const QString & button
, QWidget * pParent = NULL
, const char * Name = NULL
, bool modal = false
);

private:
QVBoxLayout m_layout;
QTextEdit m_text;
QPushButton m_button;
};

создается
Код:
ShowROTextDialog * dial = new ShowROTextDialog(str1, str2, this);
dial->show();

таким образом немодальным
Код:
setModal(false);

- дает взаимодействовать с родителем, но перекрывает его визуально. Как сделать, чтобы не перекрывал?
Записан
BaltikS
Гость
« Ответ #6 : Июнь 01, 2007, 09:45 »

Цитировать

дает взаимодействовать с родителем, но перекрывает его визуально. Как сделать, чтобы не перекрывал?

Унаследуйся от QWidget-а..... да и посмотри пример .\examples\toplevel и будет тебе счастье  Веселый
Записан
Svetlana
Гость
« Ответ #7 : Июнь 01, 2007, 10:50 »

Цитата: "BaltikS"
Унаследуйся от QWidget-а..... да и посмотри пример .\examples\toplevel и будет тебе счастье  Веселый

Я не пойму, как изменить это стандартное поведение..?
Цитировать
If a toplevel widget has a parent it will not have a taskbar entry, and on most window managers it will always stay on top of the parent widget. This is the standard behavior for dialog boxes, especially if they are modeless, and for other secondary toplevel widgets.

Или нельзя?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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