Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Dark2011 от Ноябрь 06, 2012, 17:54



Название: переопределение paint у делегата
Отправлено: Dark2011 от Ноябрь 06, 2012, 17:54
В общем есть класс в котором есть pixmap и переопределенный paintEvent...просто картинка - изменяеш размер виджета - картинка автоматически уменьшается/увеличивается...

вот такой вот простенький интерфейс...:

Код:

class Pix : public QWidget
{
Q_OBJECT

public:
Pix(QWidget *parent = 0);
void paintEvent(QPaintEvent*);

private:
QPixmap testPix;
};


Есть TableView, и модель  QStandardItemModel

Хочу из этого класса сделать делегат и поместить его в 3ий столбец....
Не понимаю как переопрделить paint

Код:
PixMapDelegate::PixMapDelegate(QObject *parent /* = 0 */) : QStyledItemDelegate(parent)
{
}


QWidget* PixMapDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index)const
{
Pix *editor = new Pix(parent);
return editor;
}
//пока я не знаю что и каким способом редактировать поэтому все просто)

ну и собственно хочу просто чтобы отображался делегат  -т.е так картинка кторая установлена в классе Pix


Код:
void PixMapDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index)const
{
   ...  ???
   ...  ???
}
  

я совсем еще нуб в Qt, не бейте сильно)))




Название: Re: переопределение paint у делегата
Отправлено: Bepec от Ноябрь 06, 2012, 19:23
Код:
testPix.resize(option.rect().size());
painter->drawPixmap(testPix);

Примерно так, код написан на память, но общий смысл ты должен понять :)