我正在尝试以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 ) );
感谢帮助!