Russian Qt Forum
Февраля 26, 2025, 00:14
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Qt4. Изменяющиеся меню. Помогите.
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Qt4. Изменяющиеся меню. Помогите. (Прочитано 10660 раз)
DmP
Гость
Qt4. Изменяющиеся меню. Помогите.
«
:
Марта 23, 2006, 10:39 »
Привет!
Скажем есть прога, с MDI интерфейсом, внутри которой могут открываться документы разных типов. Нужно, что бы в основное меню вставлялось дополнительное меню, в зависимости от типа документа.
И при переходе от окна к окну менялось динамически.
Подскажите пожалуйста, как это можно сделать, а лучше, где это можно посмотреть?
Заранее спасибо.
Записан
Asaphus_Expansus
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #1 :
Марта 23, 2006, 14:28 »
Проще всего сделать меню со всеми возможными вариантами и по необходимости для части элементов делать show()/hide()
Записан
DmP
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #2 :
Марта 24, 2006, 10:59 »
Цитата: "Asaphus_Expansus"
Проще всего сделать меню со всеми возможными вариантами и по необходимости для части элементов делать show()/hide()
Не самое лучшее решение, наверное. =)
Но вот, что я не понимаю тогда, если открыто два окна, одного типа и у них одно окно действий, как тогда сделать, что бы сигнал от нажатия в меню доходил только в активное меню?
Записан
BaltikS
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #3 :
Марта 24, 2006, 11:11 »
Испускать сигнал и в главной форме этот сигнал ловить
Записан
DmP
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #4 :
Марта 24, 2006, 11:36 »
Цитата: "BaltikS"
Испускать сигнал и в главной форме этот сигнал ловить
Сорри, ошибся немного, так правильно:
"Но вот, что я не понимаю тогда, если открыто два окна одного типа и у них одно МЕНЮ действий, как тогда сделать, что бы сигнал от нажатия в меню доходил только в активное ОКНО?"
:oops:
Записан
Kostya
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #5 :
Марта 24, 2006, 13:25 »
Цитата: "DmP"
Цитата: "BaltikS"
Испускать сигнал и в главной форме этот сигнал ловить
Сорри, ошибся немного, так правильно:
"Но вот, что я не понимаю тогда, если открыто два окна одного типа и у них одно МЕНЮ действий, как тогда сделать, что бы сигнал от нажатия в меню доходил только в активное ОКНО?"
:oops:
Аттачить слоты к сигналам в момент переключения окон.
Записан
Asaphus_Expansus
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #6 :
Марта 24, 2006, 13:49 »
Цитата: "DmP"
"Но вот, что я не понимаю тогда, если открыто два окна одного типа и у них одно МЕНЮ действий, как тогда сделать, что бы сигнал от нажатия в меню доходил только в активное ОКНО?"
:oops:
Да пусть себе доходит во все (делать лишний раз connect/disconnect - дороже). Просто в слоте проверяй isActiveWindow и отрабатывай только в активном.
Записан
DmP
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #7 :
Марта 24, 2006, 17:30 »
Всем спасибо, за идеи.
Записан
ElderOrb
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #8 :
Марта 24, 2006, 21:00 »
Самое красивое решение воспользоваться подходом котороый освещён на сайте троллтехов в Qt Quarterly в статье называющейся как-то вроде "Signal multiplexing.. "
Записан
Steven_Orko
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #9 :
Марта 24, 2006, 22:32 »
Цитата: "ElderOrb"
Самое красивое решение воспользоваться подходом котороый освещён на сайте троллтехов в Qt Quarterly в статье называющейся как-то вроде "Signal multiplexing.. "
Ха,
, опередил меня)))) тоже хотел про это написал )))
Записан
DmP
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #10 :
Марта 27, 2006, 09:51 »
Цитата: "ElderOrb"
Самое красивое решение воспользоваться подходом котороый освещён на сайте троллтехов в Qt Quarterly в статье называющейся как-то вроде "Signal multiplexing.. "
http://doc.trolltech.com/qq/qq08-action-multiplexer.html
Это конечно, хорошо, спасибо.
Но основная тема как сделать динамическое меню? =)
Суть в том что в программе, должно для каждого вида окна (а их будет очень много), чтобы меню "действия" постояно подстраивалось под окно, к тому же иногда менюх "действий" будет несколько.
Идея набивать все эти менюхи скажем в ресурсах, и использовать show()/hide() не подходит.
И "examples\mainwindows\mdi" - тоже не помогает решенюю вопроса.
Записан
Asaphus_Expansus
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #11 :
Марта 27, 2006, 10:00 »
> Суть в том что в программе, должно для каждого вида окна (а их будет очень
> много), чтобы меню "действия" постояно подстраивалось под окно, к тому же
> иногда менюх "действий" будет несколько.
Я, извините, немного не по существу - может быть что-то в консерватории поменять? Если у вас больше 3-4 видов окон и в каждом будет свое меню, с наполнением зависящим от содержимого окна, то как несчастный пользователь будет запоминать, где у него что находится? Я помню в своей практике некоторый продуктец, по отпуску нефтепродуктов со склада, реализованый подобным образом - ох, как же его проклинали люди, вынужденные с ним работать. Вопрос риторический, само собой.
Записан
Konstantin
Гость
Re: Qt4. Изменяющиеся меню. Помогите.
«
Ответ #12 :
Марта 29, 2006, 20:42 »
Ловить сигнал aboutToShow() от твоего меню и рисовать в меню в твоем слоте , по усмотрению.
Записан
DmP
Гость
Re: Qt4. Изменяющиеся меню. Помогите.
«
Ответ #13 :
Марта 30, 2006, 08:46 »
Цитата: "Konstantin"
Ловить сигнал aboutToShow() от твоего меню и рисовать в меню в твоем слоте , по усмотрению.
Но сигнал же исходит от QMenu.
А я думал сделать типа такого:
1) При открытии окна, она создает у себя одно или два QMenu и постоянно их хранит.
2) Вызывает некий метод ClearMainMenuBar, который с помощью QMenuBar::removeAction, убирает из меню ранее добавленные аналогичные меню.
3) С помощью QMenuBar::addMenu добавляет свои меню.
При смене активного меню, выполняются 2 и 3 пункты.
При закрытии окна 2 пункт.
Но я ни когда не делал таких фокусов, и не знаю в том ли направлении идти, или есть способ лучше.
Записан
Dendy
Гость
Qt4. Изменяющиеся меню. Помогите.
«
Ответ #14 :
Марта 30, 2006, 11:25 »
2 DmP
Ето абсолютно нормальньІй способ для динамического меню. Тролли в своих примерах делали так же само. Екземпляр
QMenu
создаётся один раз и при получении
aboutToShow()
от него меню очищается и заполняется
QAction
'ами, которьІе, с свою очередь, бьІли уже созданьІ ранее.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...