Russian Qt Forum

Qt => Model-View (MV) => Тема начата: spectre71 от Май 24, 2009, 11:55



Название: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: spectre71 от Май 24, 2009, 11:55
Помогите реализовать!
Смотрите картинку с таблицей (сделано на C++ Builder)
В колонке "Results" могут находиться несколько иконок (от 1 до 3 в данном случае)

Размер иконки задан некоторым Rect в котором рисуется картинка.

Задачи:
1) Редактирование клетки с иконками не предпологается
2) Отрисовка. Как и где рисовать иконки в CELL определяю я.
3) При наведении на конкретную иконку(не клетку) меняется курсор на заданный.
    Размер иконки задан некоторым Rect. Вне этого Rect курсор стандартный.
4) При наведении на конкретную иконку может показываться ToolTip определенный для нее.
5) При нажатии мышью(Mouse Press)на иконке посылается заданный сигнал.
    Нажатие одиночное. Данная клетка может быть не текущая и не выделенная.
    Но сигнал должен посылаться сразу после первого нажатия для конкретной иконки (определенной ее Rect)


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: Admin от Май 28, 2009, 11:35
По поводу картинки в ячейки таблицы  - у меня похожая задачка и как я понял нужно перегружать класс QAbstractItemDelegate
и реализовывывать собсвенную отрисовку. Я еще пока не приступал к этому. :(


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: spectre71 от Май 28, 2009, 11:47
Да, перегружать QAbstractItemDelegate надо - мне только QAbstractItemDelegate::paint.
Это путкты 1 и 2

Но это не поможет для пунктов 3, 4, 5


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: Rcus от Май 28, 2009, 12:17
В голове одни велосипеды крутятся:
QAbstractItemView::indexWidget()
или
QAbstractItemView::openPersistentEditor()
или
QWidget::mouseTracking() + QAbstractItemView::indexAt() + QAbstractItemView::itemDelegate()
и еще некоторые неоформившиеся варианты.


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: Barmaglodd от Май 28, 2009, 12:43
Можно пример stardelegate посмотреть, но там работает только когда ячейка в режиме редактирования.


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: spectre71 от Май 28, 2009, 13:18
Можно пример stardelegate посмотреть, но там работает только когда ячейка в режиме редактирования.
Внимательней читайте тему. Про редактирование речь не идет


Название: Re: QTableView/QAbstractItemModel - Отрисовка иконок(объектов) в Cell
Отправлено: spectre71 от Май 28, 2009, 13:50
QAbstractItemView::indexWidget()
QAbstractItemView::openPersistentEditor()

Слишком нерационально, у меня могут > 100000 rows

QWidget::mouseTracking() + QAbstractItemView::indexAt() + QAbstractItemView::itemDelegate()
Да я так и начал делать 
QAbstractItemView::itemDelegate() - на отрисовку
QWidget::mouseTracking() + QAbstractItemView::indexAt() - на изменение состояния курсора итд.