Название: 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 модальное окно. Второй вариант мне кажется более простым. С него, пожалуй, и начну. |