Название: Qwidget in Qcombobox Отправлено: virtual_root от Август 29, 2012, 13:05 Всем привет! Ребята, подскажите, может кто уже делал подобное. Мне нужно в qcombobox встроить Qwidget. Чтобы он(Qwidget) был в качетсве выпадающего списка. Но как это сделать, что-то не пойму ??? Искала в google, но подобного не нашла. Раньше приходилось встраивать QTreeView, но это легко получилось.
Подскажите, у кого есть идеи, пожалуйста) Название: Re: Qwidget in Qcombobox Отправлено: GreatSnake от Август 29, 2012, 17:05 Интересно, а зачем нужен сей изврат?
Название: Re: Qwidget in Qcombobox Отправлено: Dr.Vlad от Август 31, 2012, 06:02 Строишь класс наследника от QComboBox и экспериментируешь в своё удовольствие.
Но в QComboBox есть очень много private: методов, которые могут не позволить сделать такое. Название: Re: Qwidget in Qcombobox Отправлено: xokc от Август 31, 2012, 08:15 Без особенных проблем с помощью void QComboBox::setView(QAbstractItemView *itemView) можно вставить лишь наследника QAbstractItemView. Если же нужно другое поведение я бы делал собственный виджет из комбинации QLineEdit + QToolButton.
Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Август 31, 2012, 09:40 спасибо всем! xokc, мне понравилась ваша идея. QToolButton позволяет в себе разместить любое количество картинок и мне это удобно. Остаётся только вопрос как связать QLineEdit с QToolButton?
И если создавать свой компонент мне бы больше подошел не QLineEdit а QLabel(или QPushButton) чтобы можно было отображать выбранную картинку. Но как связать их между собой, чтобы по щелчку на QLabel показывался его QToolButton ? Ведь если я просто рядом расположу и буду скрывать QToolButton, то будут проблемы с внедрением моего компонента в меню формы того же QToolButton. Смотрела свойства компонентов QLabel и QToolButton но что-то ничего связывающего между ними не нашла... Название: Re: Qwidget in Qcombobox Отправлено: xokc от Август 31, 2012, 09:55 Как-то сумбурно всё - не совсем понимаю, какого поведения всё-таки добиться хотите.
Но как связать их между собой, чтобы по щелчку на QLabel показывался его QToolButton ? Если я правильно всё понял, то нужно взять QWidget или QFrame в качестве контейнера, разместить в нём требуемые QLabel и QToolButton с использованием QHBoxLayout и уже этот контейнер внедрять туда, куда нужно.Ведь если я просто рядом расположу и буду скрывать QToolButton, то будут проблемы с внедрением моего компонента в меню формы того же QToolButton. Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Август 31, 2012, 10:12 ага попробую. Мне просто нужен combobox в котором можно разместить картинки и выбирать их, а при выборе какой-либо я её подгружаю. Но и хочу чтобы можно было мой combobox разместить на панели меню) Если я создам свой контейнер, мне в любом случае придется получается скрывать на время QtoolButton, а когда пользователь нажмет на QLabel он должен выпадать QToolButton как в QCombobox. И я боюсь когда захочу свой контейнер засунуть как иконка меню в другой QtoolButton, то не получится чтоб выпадал мой находящийся внутри QtoolButton....
Название: Re: Qwidget in Qcombobox Отправлено: xokc от Август 31, 2012, 10:46 ага попробую. Стало только хуже :).Но и хочу чтобы можно было мой combobox разместить на панели меню) Может тогда ограничиться popupmenu?И я боюсь когда захочу свой контейнер засунуть как иконка меню в другой QtoolButton, то не получится чтоб выпадал мой находящийся внутри QtoolButton.... Вот тут мой мозг окончательно взорвался. Может есть пример другого приложения, где этот функционал уже реализован?Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Август 31, 2012, 10:50 например в word есть выпадающая цветная палитра. Мне нужно что-то вроде такого combobox) Там под палитрой в word размещается еще и действия и мне так надо...
Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Август 31, 2012, 10:51 в qt палитра выпадает сразу как форма, где можно и цвет выбрать, а палитры быстрого доступа я не нашла.. можно было бы тогда(если конечно возможно) посмотреть как они такое реализовали
Название: Re: Qwidget in Qcombobox Отправлено: GreatSnake от Август 31, 2012, 10:52 Мде, как всё запущено...
В который раз подтверждается элементарная лень ТС и отсутствие малейшего желания исследовать ассистент. Откройте описание QToolButton и почитайте конец абзаца (http://www.doc.crossplatform.ru/qt/4.7.x/qtoolbutton.html#details). В общем, решение здесь (http://www.prog.org.ru/index.php?topic=22861.msg161439#msg161439). PS. извиняюсь за столь резкий ответ, но в следующий раз лучше сразу опишите, что хотите получить, а не пытайтесь найти решение нестандартными способами. Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Сентябрь 01, 2012, 11:26 спасибо, попробую. Подскажите, пожалуйста кто знает, как получить глобальные координаты виджета. Например: на одной форме QMainWindow располагаю другую (встраиваю). Мне нужно узнать координаты встроенной формы по x и y относительно рабочего стола. Когда использую QDesktopWidget::screenGeometry он мне возвращает всё время 0. А через this->x() получаю координаты относительно формы.
Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Сентябрь 01, 2012, 12:28 уже нашла, всем спасибо!
mapToGlobal(QPoint(this->x(),this->y())); Название: Re: Qwidget in Qcombobox Отправлено: Странник от Сентябрь 01, 2012, 13:54 уже нашла, всем спасибо! mapToGlobal(QPoint(this->x(),this->y())); Код: mapToGlobal(this->pos()); Название: Re: Qwidget in Qcombobox Отправлено: virtual_root от Сентябрь 03, 2012, 10:25 спасибо) Я всё-таки сделала свой combobox как и хотела! Без QMenu.
|