さまざまな方法で行の境界線を作成しようとしてい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 ) );
手伝ってくれてありがとう!