Название: QDialog в роле MDI окна Отправлено: radislav72 от Ноябрь 28, 2010, 18:40 Здравствуйте!
Вопрос в следующем: можно (нужно ли?) использовать окно (потомок QDialoq), созданное с помощью QT Designer, в качестве MDI-окна. Возникла задача немного переработать проект так, чтобы то, что раньше было модальным окном, стало MDI-окном. Если сделать так : Код: if (mdiFileDeposites == 0) Таким образом, активировать окно мышкой можно, но оно все равно будет частью перекрытое другим окном. Как можно обойти такое поведение? Как легче всего перевести такой QDialog в MDI? Окно не использует типично диалоговых черт типа accept, reject... Название: Re: QDialog в роле MDI окна Отправлено: Авварон от Ноябрь 28, 2010, 19:15 Если вообще нет ничего от диалога, то в чем проблема открыть .ui файл текстовым редактором и в заголовке заменить QDialog на QWidget?
Название: Re: QDialog в роле MDI окна Отправлено: lit-uriy от Ноябрь 28, 2010, 19:21 >>можно (нужно ли?) использовать окно (потомок QDialoq), созданное с помощью QT Designer, в качестве MDI-окна.
категорически не нужно. Название: Re: QDialog в роле MDI окна Отправлено: radislav72 от Ноябрь 28, 2010, 22:00 категорически не нужно. А как проще всего "переделать" диалог в нужном направлении?Название: Re: QDialog в роле MDI окна Отправлено: radislav72 от Ноябрь 28, 2010, 22:15 Если вообще нет ничего от диалога, то в чем проблема открыть .ui файл текстовым редактором и в заголовке заменить QDialog на QWidget? Изменил, в том числе и QDialog на QWidget в файлах *.cpp и *.h, все компилируется но работает так же: окно, созданное вторым, всегда поверх окна, созданного первымНазвание: Re: QDialog в роле MDI окна Отправлено: radislav72 от Ноябрь 29, 2010, 14:26 категорически не нужно. Буду благодарен за уточнение: - не нужно использовать производные QDialog для MDI - или не нужно использовать QT Designer для создания MDI- окон Или и то и другое? Можно ли вообще в MDIArea добавить окно произвольного вида? Поиск по инету что-то не дает нужного ответа... В основном для МДІ используют однотипные простые окна. Название: Re: QDialog в роле MDI окна Отправлено: lit-uriy от Ноябрь 29, 2010, 21:19 >>- не нужно использовать производные QDialog для MDI
диалог - "диалог" (окно появляющееся поверх родителя, что что-то спросить у пользователя) субокно в многодокументном интерфейсе - полноценное окно, только внутри главного. Твой диалог нужно в дизайнере привести к обычному виджету, если где-то понадобится использовать его как диалог, поместишь этот виджет в диалоговое окно. (в дизайнере это можно сделать через "promote to") Название: Re: QDialog в роле MDI окна Отправлено: radislav72 от Ноябрь 30, 2010, 10:59 Твой диалог нужно в дизайнере привести к обычному виджету Больщое спасибо за ответ. Только как в дизайнере можно привести диалог к виджету?Я попробовал сдалать так как раньше написал Авварон: открыл .ui файл текстовым редактором и в заголовке заменил QDialog на QWidget. Дальше в определении класса также изменил базовый класс, то есть: Код: class file_deposites : public QDialog { Код: class file_deposites : public QWidget{ Ну и в .cpp файле тоже. Вроде работает. Такую ручную замену можно делать? Но если в дизайнере можно изменить базовый класс, то хотелось бы знать как (я что-то не нашел такой функции). |