Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Serr500 от Ноябрь 26, 2012, 15:09



Название: ComboBox с таблицей
Отправлено: Serr500 от Ноябрь 26, 2012, 15:09
Возникла следующая задача. Требуется сделать аналог QComboBox'а, но вместо простых строчек текста в выпадающем списке должна находиться полноценная таблица (QTableView). У таблицы должен быть заголовок, столбцы которого можно перетаскивать, менять ширину и т.д. Более того, должна быть возможность изменять высоту таблицы с помощью мыши (можно ещё и ширину, но это не обязательно). Кроме того, в обычном QComboBox выбор элемента из списка осуществляется одинарным щелчком. Здесь выбора элемента быть не должно, точнее говоря, таблица должна генерировать сигналы в ответ на одинарный и двойной щелчок мышью, а выбор сделает некий внешний по отношению к ней обработчик. Ну и всё это хозяйство должно быть "завёрнуто" в отдельный класс.

Соответственно вопрос: есть идеи как такое реализовать?

P.S. Насколько я понял, в QComboBox в выпадающий список можно "запихнуть" QTableView, но тогда элемент будет выбираться по одинарному щелчку и не будет возможности изменения размера. Или можно как-то выполнить все условия задачи, унаследовавшись от комбо-бокса?


Название: Re: ComboBox с таблицей
Отправлено: maint от Ноябрь 26, 2012, 15:45
я на основе QLineEdit делал подобное. Правда не выпадал диалог, а как модальное окно


Название: Re: ComboBox с таблицей
Отправлено: kambala от Ноябрь 26, 2012, 16:43
комбобоксу же можно модель и вью назначить


Название: Re: ComboBox с таблицей
Отправлено: Serr500 от Ноябрь 27, 2012, 10:56
комбобоксу же можно модель и вью назначить
А изменять размер View мышью оно даст? И как запретить выбор элемента одинарным щелчком?


Название: Re: ComboBox с таблицей
Отправлено: kambala от Ноябрь 27, 2012, 14:28
по умолчанию комбобокс не разрешает растягивать свой список. и это и одинарный щелчёк должны по идее решаться наследованием и исследованием исходников.


Название: Re: ComboBox с таблицей
Отправлено: Serr500 от Ноябрь 27, 2012, 15:25
Смотрел уже исходники. Там такое понакручено...  :-[ Неделю разбираться придётся...

Вобщем, направление движения понятно. Либо переписывать QComboBox, либо прикручивать к QLineEdit модальное окно. Второй вариант мне кажется более простым. С него, пожалуй, и начну.