【发布时间】:2011-09-14 12:42:05
【问题描述】:
我正在尝试以不同的方式为 QTableWidget 中的行设置边框,但所有解决方案都无法满足我的要求。我想要的只是围绕整行绘制一个矩形。我曾尝试QStyledItemDelegate 类,但这不是我的方式,因为委托仅用于项目[行、列],而不用于整行或整列。
这里是错误的解决方案:
/// @brief Рисуем границу вокруг строки.
class DrawBorderDelegate : public QStyledItemDelegate
{
public:
DrawBorderDelegate( QObject* parent = 0 ) : QStyledItemDelegate( parent ) {}
void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
}; // DrawBorderDelegate
void DrawBorderDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
QStyleOptionViewItem opt = option;
painter->drawRect( opt.rect );
QStyledItemDelegate::paint( painter, opt, index );
}
在代码中的某处:
tableWidget->setItemDelegateForRow( row, new DrawBorderDelegate( this ) );
感谢您的帮助!
【问题讨论】:
-
您是否考虑过可能需要创建自己的视图?或者,创建一个委托来查看它正在绘制的索引的列,并绘制矩形的适当边。
标签: qt qt4 qtablewidget