Russian Qt Forum
Ноябрь 23, 2024, 19:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создать компонент похожий на выбор маркерованного списка в MS Office  (Прочитано 2162 раз)
MadShmit
Гость
« : Август 25, 2012, 12:23 »

Здравствуйте!

   Я пытаюсь реализовать компонент вида как во вложении (как в MS Office 2010, при выборе типа маркера).
   Идея следующая – компонент состоит из двух QWidgetов. Первый содержит две кнопки первая кнопка выполняет действие, а вторая со стрелкой по нажатию на которую появляется второй виджет. Второй QWidget содержит то что я захочу.
   У меня возникла следующая проблема. Предполагается, что кнопка может располагаться где угодно. QWidget должен иметь родителя, чтобы рассчитать координаты. Если кнопка на форме, то понятно как рассчитать – второй виджет получает родителя форму и относительно неё рассчитываю координаты, а если кнопка на QToolBar, то кого делать родителем выпадающего QWidgeta и как рассчитать координаты кнопки?
   Я подумал, что проблему можно решить так:
   Выпадающему QWidget (второму выджету) не выставлять потомка, позволить ему появляться как отдельному окну, только без полей и отображения на панели задач, но тогда возникает вопрос, как вычислить координаты кнопки относительно экрана, в том числе и на QToolBar.
Пожалуйста подскажите как это можно сделать, или может, подскажите более лучшую идею реализации.
Заранее спасибо!
« Последнее редактирование: Август 25, 2012, 12:33 от MadShmit » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Август 26, 2012, 12:37 »

Для таких вещей нужно использовать QMenu, которое через
Код
C++ (Qt)
void QToolButton::setMenu ( QMenu * menu )
связывается с кнопкой, которая сама будет располагать меню.
Элементы этого меню устанавливаются через QWidgetAction.
Записан

Qt 5.11/4.8.7 (X11/Win)
MadShmit
Гость
« Ответ #2 : Август 29, 2012, 19:55 »

Спасибо большое. Вы мне очень помогли.  Улыбающийся
P.S. Всё получилось.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 22.