Russian Qt Forum

Qt => Общие вопросы => Тема начата: Sir_J от Июль 07, 2005, 18:11



Название: QDialog
Отправлено: Sir_J от Июль 07, 2005, 18:11
У меня в проекте 2 формы QDialog
одна вызывается из другой по forma->exec();
Как мне из дочерней формы получить доступ к елементу родительской формы
спасибо.


Название: QDialog
Отправлено: Sergeich от Июль 08, 2005, 09:57
Если ты в конструкторе 2-ого диалога родителем поставил 1-ый, то юзай ( ( FirstDialogType* ) parent() )->....


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

Ваша конструкция немного непонятна.
Проблему решил так
 ((mainForm *)(this->parentWidget()))->element->property


Название: On Top
Отправлено: Svetlana от Май 31, 2007, 14:33
Создается объект класса - наследника QDialog, немодальный. Он всегда будет перекрывать виджет - родитель? Qt 3.3.4.


Название: QDialog
Отправлено: BaltikS от Май 31, 2007, 14:46
В 3 если ты перекрываешь QDIALOG, то он всегда будет модальным. ЧТО значит перекрывать родителя?


Название: QDialog
Отправлено: Svetlana от Май 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);

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


Название: QDialog
Отправлено: BaltikS от Июнь 01, 2007, 09:45
Цитировать

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

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


Название: QDialog
Отправлено: Svetlana от Июнь 01, 2007, 10:50
Цитата: "BaltikS"
Унаследуйся от QWidget-а..... да и посмотри пример .\examples\toplevel и будет тебе счастье  :D

Я не пойму, как изменить это стандартное поведение..?
Цитировать
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.

Или нельзя?