Russian Qt Forum
Июнь 17, 2024, 02:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qwidget in Qcombobox  (Прочитано 6827 раз)
virtual_root
Гость
« : Август 29, 2012, 13:05 »

Всем привет! Ребята, подскажите, может кто уже делал подобное. Мне нужно в  qcombobox встроить Qwidget. Чтобы он(Qwidget) был в качетсве выпадающего списка. Но как это сделать, что-то не пойму Непонимающий Искала в google, но подобного не нашла. Раньше приходилось встраивать QTreeView, но это легко получилось.
Подскажите, у кого есть идеи, пожалуйста)
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



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

Интересно, а зачем нужен сей изврат?
Записан

Qt 5.11/4.8.7 (X11/Win)
Dr.Vlad
Гость
« Ответ #2 : Август 31, 2012, 06:02 »

Строишь класс наследника от QComboBox и экспериментируешь в своё удовольствие.
Но в QComboBox есть очень много private: методов, которые могут не позволить сделать такое.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #3 : Август 31, 2012, 08:15 »

Без особенных проблем с помощью void QComboBox::setView(QAbstractItemView *itemView) можно вставить лишь наследника QAbstractItemView. Если же нужно другое поведение я бы делал собственный виджет из комбинации QLineEdit + QToolButton.
Записан
virtual_root
Гость
« Ответ #4 : Август 31, 2012, 09:40 »

спасибо всем! xokc, мне понравилась ваша идея. QToolButton позволяет в себе разместить любое количество картинок и мне это удобно. Остаётся только вопрос как связать QLineEdit с QToolButton?
И если создавать свой компонент мне бы больше подошел не QLineEdit  а QLabel(или QPushButton) чтобы можно было отображать выбранную картинку. Но как связать их между собой, чтобы по щелчку на QLabel показывался его QToolButton ?
Ведь если я просто рядом расположу и буду скрывать QToolButton, то будут проблемы с внедрением моего компонента в меню формы того же  QToolButton.
Смотрела свойства компонентов QLabel и QToolButton но что-то ничего связывающего между ними не нашла...
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #5 : Август 31, 2012, 09:55 »

Как-то сумбурно всё - не совсем понимаю, какого поведения всё-таки добиться хотите.
Но как связать их между собой, чтобы по щелчку на QLabel показывался его QToolButton ?
Ведь если я просто рядом расположу и буду скрывать QToolButton, то будут проблемы с внедрением моего компонента в меню формы того же  QToolButton.
Если я правильно всё понял, то нужно взять QWidget или QFrame в качестве контейнера, разместить в нём требуемые QLabel и QToolButton с использованием QHBoxLayout и уже этот контейнер внедрять туда, куда нужно.
« Последнее редактирование: Август 31, 2012, 10:12 от xokc » Записан
virtual_root
Гость
« Ответ #6 : Август 31, 2012, 10:12 »

ага попробую. Мне просто нужен combobox в котором можно разместить картинки и выбирать их, а при выборе какой-либо я её подгружаю. Но и хочу чтобы можно было мой combobox разместить на панели меню) Если я создам свой контейнер, мне в любом случае придется получается скрывать на время QtoolButton, а когда пользователь нажмет на QLabel он должен выпадать QToolButton как в QCombobox. И я боюсь когда захочу свой контейнер засунуть как иконка меню в другой QtoolButton, то не получится чтоб выпадал мой находящийся внутри QtoolButton....
« Последнее редактирование: Август 31, 2012, 10:16 от tiny developer » Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #7 : Август 31, 2012, 10:46 »

ага попробую.
Стало только хуже Улыбающийся.

Но и хочу чтобы можно было мой combobox разместить на панели меню)
Может тогда ограничиться popupmenu?

И я боюсь когда захочу свой контейнер засунуть как иконка меню в другой QtoolButton, то не получится чтоб выпадал мой находящийся внутри QtoolButton....
Вот тут мой мозг окончательно взорвался. Может есть пример другого приложения, где этот функционал уже реализован?
Записан
virtual_root
Гость
« Ответ #8 : Август 31, 2012, 10:50 »

например в word есть выпадающая цветная палитра. Мне нужно что-то вроде такого combobox) Там под палитрой в word размещается еще и действия и мне так надо...
Записан
virtual_root
Гость
« Ответ #9 : Август 31, 2012, 10:51 »

в qt палитра выпадает сразу как форма, где можно и цвет выбрать, а палитры быстрого доступа я не нашла.. можно было бы тогда(если конечно возможно) посмотреть как они такое реализовали
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Август 31, 2012, 10:52 »

Мде, как всё запущено...
В который раз подтверждается элементарная лень ТС и отсутствие малейшего желания исследовать ассистент.
Откройте описание QToolButton и почитайте конец абзаца.
В общем, решение здесь.

PS. извиняюсь за столь резкий ответ, но в следующий раз лучше сразу опишите, что хотите получить, а не пытайтесь найти решение нестандартными способами.
« Последнее редактирование: Август 31, 2012, 11:32 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
virtual_root
Гость
« Ответ #11 : Сентябрь 01, 2012, 11:26 »

спасибо, попробую. Подскажите, пожалуйста кто знает, как получить глобальные координаты виджета. Например: на одной форме QMainWindow располагаю другую (встраиваю). Мне нужно узнать  координаты встроенной формы по x и y относительно рабочего стола. Когда использую QDesktopWidget::screenGeometry он мне возвращает всё время 0. А через this->x() получаю координаты относительно формы.
« Последнее редактирование: Сентябрь 01, 2012, 11:33 от tiny developer » Записан
virtual_root
Гость
« Ответ #12 : Сентябрь 01, 2012, 12:28 »

уже нашла, всем спасибо!
mapToGlobal(QPoint(this->x(),this->y()));
Записан
Странник
Гость
« Ответ #13 : Сентябрь 01, 2012, 13:54 »

уже нашла, всем спасибо!
mapToGlobal(QPoint(this->x(),this->y()));
Код:
mapToGlobal(this->pos());
Записан
virtual_root
Гость
« Ответ #14 : Сентябрь 03, 2012, 10:25 »

спасибо) Я всё-таки сделала свой combobox как и хотела! Без QMenu.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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