Здравствуйте, гость ( Вход | Регистрация )
JohnZ | Дата 26.11.2014, 12:27 |
'lanz' Спасибо за ответ. Попробую реализовать и отпишусь. | |
lanz | Дата 20.11.2014, 22:45 |
Тогда задам вопрос по другому - как сделать MdiCild-а прозрачным ? Есть такая возможность ? Если да, то п.3 отпадает автоматически :-) Передать в addSubWindow Qt::FramelessWindowHint во второй параметр, а в первый свой виджет, который сделать прозрачным. Указатель на меню главного окна находится внутри QMainWindow, и для такой прямой подмены не доступен, IMHO. Или всё-таки можно ? Можно передать в widget который завернут в subwindow указатель на нужное меню, потом делать с ним все что угодно .) Можно сделать слт в главном окне который будет этим заниматся и прикрутить к нему сигналы из виджета subwindow. |
|
JohnZ | Дата 18.11.2014, 18:58 |
lanz, спасибо за ответ ! 1. В MDI окна это специальные QMdiSubWindow, которые созданы для работы с этим контейнером. Обычные виджеты при добавлении оборачиваются в них. Наследника от обычного класса можно сделать, но тогда придется исвою обработку писать в QMdiArea. Но зачем? Всё правильно, незачем. Тогда задам вопрос по другому - как сделать MdiCild-а прозрачным ? Есть такая возможность ? Если да, то п.3 отпадает автоматически :-) 2. Опять же зачем подменять? Можно напрямую добавлять Actions из кода. Так оно и будет, но проблема, как я уже говорил, в перерисовке при активации при нескольких MdiCild-ах. Т.е. при выборе MdiCild-а, меню QMainWindow должно быть заменено на меню проекта, находящегося в MdiCild-е. Указатель на меню главного окна находится внутри QMainWindow, и для такой прямой подмены не доступен, IMHO. Или всё-таки можно ? В прицепе для наглядности мин. проект с демо-конфигом. Фактически в проекте он является MdiCild-ом. Менюшка в ветке interfase->mainmenu. Тулбар рядом. |
|
lanz | Дата 14.11.2014, 23:24 |
1. В MDI окна это специальные QMdiSubWindow, которые созданы для работы с этим контейнером. Обычные виджеты при добавлении оборачиваются в них. Наследника от обычного класса можно сделать, но тогда придется исвою обработку писать в QMdiArea. Но зачем? 2. Опять же зачем подменять? Можно напрямую добавлять Actions из кода. 3. Тут я не совсем понял. Я думаю активировать/показывать окна принадлежащие данной конфигурации, прятать/сворачивать остальные. |
|
JohnZ | Дата 13.11.2014, 17:32 |
Всем Здравия ! Есть небольшой проект, начат из QT-шного примера MDI. Вопросы ... 1. В MDI дочерние окна обычно являются наследниками визуальных классов, которые в свою очередь наследуются от QWidget. Можно-ли дочернее окно сделать наследником от невизуального класса, например QObject ? ... и что и как в таком случае будет выбираться/активироваться при выборе в меню window, если такое возможно ? (см. ниже, п.3) 2. Дочерние окна создаются из разных конфигураций, (например "Банк", "Касса", и т д) соотв-но и меню/тулбар у каждого свои, которые создаются из загружаемого конфига. Как правильно сделать "перегузку" меню/тулбара ? Есть-ли пример (или хотя-бы алгоритм) такой подмены ? 3. При выборе/загрузке конфигурации необходимо выставить только меню и тулбар у QMainWindow, без MdiChild-а. Допустим, загружены 2 конфигурации, "Банк" и "Касса". В 1-ой открыт список клиентов и какой-либо отчёт, а во 2-ой, - список документов. При выборе в меню window->Касса, все окна, принадлежащие 1-му конфигу должны быть спрятаны/свёрнуты, и показаны/активированы окна, принадлежащие 2-му конфигу. В случае, если MdiChild оконный объект, всё как в примере MDI, т.е. просто активируется выбранное окно. Как сделать такую активацию в данном случае, с учётом если п.1 будет возможен ? Предположительно, все открываемые из меню окна, кроме отчётов, будут наследниками от QDialog ... Заранее благодарен за помощь. PS: Если что непонятно из вопросов, спрашивайте - дополню. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 27.4.2024, 9:34 |