Название: QComboBox with submenu в качестве делегата Отправлено: galilley от Сентябрь 02, 2010, 18:19 Доброго времени!
Захотелось сделать делегат типа combobox, но чтобы были подменю. Сам combobox создавать подменю не умеет. Пробовал взять QToolButton, но возникла проблема с внесением данных в модель. По клику на ячейке открывается toolbutton, но при шелчке по кномке открывается меню QToolButton, а сам persistentEditor закрывается, и происходит комит того значения, что было по умолчанию. Т.о. дальнейший выбор в открывшемся меню ни на что не влияет, и перехватить его у меня не получается. Может кто создавал что-нить подобное? Спасибо. Название: Re: QComboBox with submenu в качестве делегата Отправлено: merke от Сентябрь 02, 2010, 18:31 А что если не использовать ни какие делегаты, взять что то типа фрейма, в комбобоксе если у итема есть субменю ставим флаг именно для этого итема, при клике на нем мы смотрим на этот флаг если есть субменю определяем координаты указателя через QEvent и показываем наш сгенерированный фрейм со своими уникальными для каждого случая данными. при клике за фреймом убирать фрейм.
Название: Re: QComboBox with submenu в качестве делегата Отправлено: Marat(Qt) от Сентябрь 09, 2010, 13:16 Доброго времени! Насколько мне известно, эдитор закрывается когда теряет фокус. Если в качестве эдитора использовать обычный виджет со strongFocus и лежащим на ним toolButton с noFocus, то, вероятно, эдитор не закроется при клике по toolButton.Захотелось сделать делегат типа combobox, но чтобы были подменю. Сам combobox создавать подменю не умеет. Пробовал взять QToolButton, но возникла проблема с внесением данных в модель. По клику на ячейке открывается toolbutton, но при шелчке по кномке открывается меню QToolButton, а сам persistentEditor закрывается, и происходит комит того значения, что было по умолчанию. Т.о. дальнейший выбор в открывшемся меню ни на что не влияет, и перехватить его у меня не получается. Может кто создавал что-нить подобное? Спасибо. p.s. У меня нет опыта работы с меню для toolButton'a. Однако, можно предположить, что именно это меню отнимает фокус, помешайте ему (у меню тоже есть focusPolicy) Название: Re: QComboBox with submenu в качестве делегата Отправлено: galilley от Сентябрь 12, 2010, 17:44 Всё гениально просто, спасибо за идею!
Дело действительно в потере фокуса, только вопрос решился не Код: menu->setFocusPolicy(Qt::NoFocus); Код: editor->setFocusProxy( menu); Код: editor->setPopupMode( QToolButton::InstantPopup ); Код: QToolButton *editor = new QToolButton(parent); |