Russian Qt Forum
Ноябрь 24, 2024, 08:45
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
QMenu с двумя колонками
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QMenu с двумя колонками (Прочитано 7601 раз)
UNION labs
Гость
QMenu с двумя колонками
«
:
Январь 26, 2014, 08:32 »
Всем привет. Подскажите пожалуйста, как можно сделать меню с двумя колонками (а-ля меню firefox'а)?
Записан
Vamireh
Гость
Re: QMenu с двумя колонками
«
Ответ #1 :
Январь 26, 2014, 13:39 »
Попробуйте в QMenu в paintEvent дописать рисование другого QMenu справа, стандартными средствами - никак.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: QMenu с двумя колонками
«
Ответ #2 :
Январь 26, 2014, 13:48 »
Цитата: Vamireh от Январь 26, 2014, 13:39
Попробуйте в QMenu в paintEvent дописать рисование другого QMenu справа, стандартными средствами - никак.
Мде... более бредового предложения трудно себе представить.
2 TC:
Пробуй через QWidgetAction.
Записан
Qt 5.11/4.8.7 (X11/Win)
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: QMenu с двумя колонками
«
Ответ #3 :
Январь 26, 2014, 14:09 »
NOTE: QMenu простой виджет, поэтому на него можно, разместить другие виджеты.
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
Bepec
Гость
Re: QMenu с двумя колонками
«
Ответ #4 :
Январь 26, 2014, 15:25 »
Наследоваться от QMenu и сделать.
Хотя мне больше импонирует вариант наследования от QWidget и два QMenu в приватных полях.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QMenu с двумя колонками
«
Ответ #5 :
Январь 27, 2014, 09:25 »
Цитата: GreatSnake от Январь 26, 2014, 13:48
2 TC:
Пробуй через QWidgetAction.
Для popup меню - без проблем (аттач). Но вот в main bar (OSX) почему-то не добавляется - хотя в букваре написано что можно.
Записан
UNION labs
Гость
Re: QMenu с двумя колонками
«
Ответ #6 :
Январь 30, 2014, 10:10 »
Цитата: Igors от Январь 27, 2014, 09:25
Для popup меню - без проблем (аттач)
Круто, я вот только не пойму как вставленный QWidgetAction с меню передвинуть вправо...
Записан
UNION labs
Гость
Re: QMenu с двумя колонками
«
Ответ #7 :
Январь 30, 2014, 11:27 »
Понял!
Спасибо большое!
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: QMenu с двумя колонками
«
Ответ #8 :
Январь 30, 2014, 11:49 »
И как сделали?
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
UNION labs
Гость
Re: QMenu с двумя колонками
«
Ответ #9 :
Январь 30, 2014, 11:59 »
На виджете лэйаут, в лэйауте два меню. Затем виджет установлен для QWidgetAction при помощи setDefaultWidget. И затем в необходимое меню помещается наш QWidgetAction, как единственное действие. Вот
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: QMenu с двумя колонками
«
Ответ #10 :
Январь 30, 2014, 14:24 »
Спасибо, это оказалось проще, чем я думал
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
mitrich
Гость
Re: QMenu с двумя колонками
«
Ответ #11 :
Февраль 06, 2014, 12:44 »
У меня получается что каждая колонка меню имеет собственную рамку + одна общая (см. аттач), а на картинке, которую выложил
Igors
, 2 колонки меню объединены только одной общей.
Это через CSS сделано, или отрисовка переписана?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QMenu с двумя колонками
«
Ответ #12 :
Февраль 06, 2014, 12:50 »
Попробуйте setContentMargins и setSpacing нулевые. Не поможет - придется через стиль. А переписывать отрисовку - нет, это ж здесь безнадюга
Записан
UNION labs
Гость
Re: QMenu с двумя колонками
«
Ответ #13 :
Февраль 06, 2014, 12:52 »
чтобы убрать общую рамку можно в лейауте убрать отступы (margins), на счёт оставшегося - думается мне, что в OSX QMenu просто отрисовываются несколько иначе
Записан
mitrich
Гость
Re: QMenu с двумя колонками
«
Ответ #14 :
Февраль 06, 2014, 16:08 »
Цитировать
setContentMargins и setSpacing нулевые
Так и было.
Цитировать
думается мне, что в OSX QMenu просто отрисовываются несколько иначе
Похоже на то. В общем CSS будет наилучшим простым решением.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...