Название: Rich text && item
Отправлено: Emc от Август 14, 2007, 14:30
Есть ли способ добавить rich text в QStandardItem ? я хочу чтобы текст отображался в таком виде >>text text text<<
Название: Rich text && item
Отправлено: vaprele07 от Август 14, 2007, 15:58
Если лень, можно так: class myDelegate : public QItemDelegate { ... protected: virtual void drawDisplay ( QPainter * painter, const QStyleOptionViewItem & option, const QRect & rect, const QString & text ) const { QTextDocument doc; doc.setHtml(text); QPixmap pix(rect.size()); QPainter p(&pix); p.setPen(Qt::NoPen); if (option.state & QStyle::State_Selected) p.setBrush(option.palette.highlight()); else p.setBrush(option.palette.base()); p.fillRect (pix.rect(), p.brush()); doc.drawContents(&p, pix.rect()); painter->drawPixmap(rect.x(), rect.y(), pix); } };
Название: Rich text && item
Отправлено: Emc от Август 14, 2007, 16:14
жесть идею понял - спасибо
Название: Rich text && item
Отправлено: EhTemka от Август 17, 2007, 15:18
Если лень, можно так: class myDelegate : public QItemDelegate { ... protected: virtual void drawDisplay ( QPainter * painter, const QStyleOptionViewItem & option, const QRect & rect, const QString & text ) const { QTextDocument doc; doc.setHtml(text); QPixmap pix(rect.size()); QPainter p(&pix); p.setPen(Qt::NoPen); if (option.state & QStyle::State_Selected) p.setBrush(option.palette.highlight()); else p.setBrush(option.palette.base()); p.fillRect (pix.rect(), p.brush()); doc.drawContents(&p, pix.rect()); painter->drawPixmap(rect.x(), rect.y(), pix); } };
А не подскажите, какая это версия Qt? У меня 4.1.4, и drawContents() у QTextDocument там нет, к сожелению :cry: А очень бы хотелось отображать HTML в ячейках...
Название: Rich text && item
Отправлено: Emc от Август 17, 2007, 15:59
начиная с 4.2.х
Название: Rich text && item
Отправлено: EhTemka от Август 17, 2007, 16:15
спасибо!
хотя и жаль...
Название: Rich text && item
Отправлено: stealth от Август 17, 2007, 21:32
Всё работает. Спасибо!
|