Название: Постоянное отображение делегата QTableWidget Отправлено: Andrew12 от Декабрь 08, 2010, 22:27 Здравствуйте, многоуважаемый all.
Перерыл кучу материала и так и не нашел ответа на следующий вопрос: 1. Создаю QTableWidget 2. Создаю делегата-наследника QComboBox. 3. Модель ComboBox содержит поле name(название товара, строка, отображается), id(идентификатор, число, не отображается) В модели QTableWidget должно храниться id, а показывать должно name, что и происходит при клике на контрол (отображается ComboBox). Как сделать, чтоб ComboBox отображался постоянно? Название: Re: Постоянное отображение делегата QTableWidget Отправлено: crossly от Декабрь 09, 2010, 10:02 переопределить у делегата метод paint ... и отрисовать комбобокс
Название: Re: Постоянное отображение делегата QTableWidget Отправлено: brankovic от Декабрь 20, 2010, 08:31 Метод openPersistentEditor делает такое. Имеется у QAbstractItemView, QTableWidget, QListWidget, QTreeWidget.
Название: Re: Постоянное отображение делегата QTableWidget Отправлено: crossly от Декабрь 20, 2010, 17:16 а тут стоит подумать.... держать в памяти кучу открытых эдиторов или все же просто отрисовать...
Название: Re: Постоянное отображение делегата QTableWidget Отправлено: brankovic от Декабрь 21, 2010, 12:46 а тут стоит подумать.... держать в памяти кучу открытых эдиторов или все же просто отрисовать... А как это "просто отрисовать"? Имеется ввиду посмотреть на обычный комбо бокс и воссоздать его? Но это же очень громоздко, наверное (надо брать цвета от стилей, уметь его ресайзить и т.п.). Кьют только начал изучать и совсем недавно пытался такую задачу решить. Я так пробовал: чтобы самому не рисовать, cоздавал на лету комбо бокс и просил его отрендерится на qpainter. Ничего не вышло. Есть ли простой способ его отрисовать? Название: Re: Постоянное отображение делегата QTableWidget Отправлено: Kolobok от Декабрь 21, 2010, 12:49 Есть ли простой способ его отрисовать? Посмотри описание QStyle Название: Re: Постоянное отображение делегата QTableWidget Отправлено: twp от Декабрь 21, 2010, 17:31 а зачем отрисовывать именно комбобокс? неужели недостаточно просто отобразить name?
Название: Re: Постоянное отображение делегата QTableWidget Отправлено: brankovic от Декабрь 21, 2010, 17:59 а зачем отрисовывать именно комбобокс? неужели недостаточно просто отобразить name? Если отрисовывать только name, то дефолтный делегат сам справится. А отрисовывать, чтобы было сразу видно, что это комбобокс. В таблице есть комбобоксовые поля и обычные, нередактируемые. На самом деле меня больше всего раздражает, что для выпадания комбобокса надо кликнуть 2 раза, тут отрисовка вообще ни при чём. Название: Re: Постоянное отображение делегата QTableWidget Отправлено: twp от Декабрь 21, 2010, 18:34 а зачем отрисовывать именно комбобокс? неужели недостаточно просто отобразить name? Если отрисовывать только name, то дефолтный делегат сам справится. А отрисовывать, чтобы было сразу видно, что это комбобокс. В таблице есть комбобоксовые поля и обычные, нередактируемые. На самом деле меня больше всего раздражает, что для выпадания комбобокса надо кликнуть 2 раза, тут отрисовка вообще не причём. Название: Re: Постоянное отображение делегата QTableWidget Отправлено: crossly от Декабрь 21, 2010, 20:57 а зачем отрисовывать именно комбобокс? неужели недостаточно просто отобразить name? Если отрисовывать только name, то дефолтный делегат сам справится. А отрисовывать, чтобы было сразу видно, что это комбобокс. В таблице есть комбобоксовые поля и обычные, нередактируемые. На самом деле меня больше всего раздражает, что для выпадания комбобокса надо кликнуть 2 раза, тут отрисовка вообще не причём. Код: void QStyle::drawControl ( ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0 ) const [pure virtual] Название: Re: Постоянное отображение делегата QTableWidget Отправлено: twp от Декабрь 22, 2010, 11:48 да, согласен, но каждый может иметь свое неправильное мнение ;) К тому же дополнительная информация никому не повредит
|