Название: [Решено]QComboBox QStyledItemDelegate фоновое изобажение в ячейке Отправлено: voral от Март 24, 2011, 01:18 Итак есть модель, есть QTableView. Одной из колонок назначен делегат комбо лист. Все Ок. Но.
В обычном режиме таблицы нет ни каких визуальных меток, что можно в ячейке открыть комбик. Хотелось бы в ячейке с этим делегатом с правой стороны разместить изображение стрелочки вниз. Сегодня перепробовал вроде разных идей. Но не фига не выходит. Так например. Для QTableView задаю стиль: Код: this->setStyleSheet("QTreeView::item::last{background-image:url(\":/res/arrow.png\");background-position:right center; background-repeat:no-repeat;}"); Изображение располагается там где надо, но фон становится всегда белым. Т.е. в этой ячейке пропадает и черезстрочность и фон пи активности стоки. Второй вариант. В класс делегата: Код: void VComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Подскажите направление/решение проблемы. Может я вообще не стой стороны захожу. Название: Re: QStandardItemModel+QTableView+QComboBox (delegat) фоновое изобажение в ячейке Отправлено: CL0NE от Март 24, 2011, 02:17 Я бы использовал paint event делегата
Название: Re: QStandardItemModel+QTableView+QComboBox (delegat) фоновое изобажение в ячейке Отправлено: voral от Март 24, 2011, 02:30 Я бы использовал paint event делегата вот сейчас сижу переопределил метод Paint у делегата.... вообще ни чего не получается - разве что цвет текста сумел поменять (но мне это не надо), но я ни когда еще с паинтом и прочей компанией для рисования не пользовался...... :(Наверное надо спать идти....... Название: Re: QStandardItemModel+QTableView+QComboBox (delegat) фоновое изобажение в ячейке Отправлено: voral от Март 24, 2011, 11:17 Не выходит каменный цветочек. :(
Иконка рисуется. Но всегда в одной позиции относительно всего QTableView/QTreeView. Как найти позицию текущей строки? painter->viewport().top(),painter->viewport().left(),index.row() - все дают 0 Код: void VComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, Код: option.rect() Название: Re: QStandardItemModel+QTableView+QComboBox (delegat) фоновое изобажение в ячейке Отправлено: voral от Март 24, 2011, 11:41 Итак решено
Код: void VComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, |