2017-08-08 9 views
0

ごとに私はこのようにいくつかのQTableWidgetItemsを表示するシンプルなQTableWidgetを使用しています:QTableWidgetスタイルはQTableWidgetItem

+-------------+-------------+ 
|    | some text 1 | 
| some number +-------------+ 
|    | some text 2 | 
+-------------+-------------+ 
|    | some text 1 | 
| some number +-------------+ 
|    | some text 2 | 
+-------------+-------------+ 

私はQTableWidgetなどのためにスタイルシートを設定することにより、QTableWidgetItemsの周囲に境界線を引くことができることを知っています

QTableView::item { 
    border-bottom: 1px solid black; 
} 

ただし、これはすべてQTableWidgetItemsに適用されます。私は "いくつかの数字"と "いくつかのテキスト2"の項目だけの境界線を描画したいと思います。

QTableWidgetQTableWisgetItemの使用に固執してもかまいませんか? QTableWidgetItem sが何QObject S ...それだ

答えて

1

使用デリゲート、例

class MyDelegate : public QItemDelegate 
{ 
    public: 
    MyDelegate(QObject *parent) : QItemDelegate(parent) { } 
    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; 
}; 

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const 
{ 
    QItemDelegate::paint(painter, option, index); 
    painter->setPen(Qt::red); 
    painter->drawLine(option.rect.topLeft(), option.rect.bottomLeft()); 
    // What line should you draw 
    // painter->drawLine(option.rect.topLeft(), option.rect.topRight()); 
    // painter->drawLine(option.rect.topLeft(), option.rect.bottomLeft()); 
} 
... 

     m_TableWidgetClass->setItemDelegateForRow(row, new MyDelegate(this)); 
     //m_TableWidgetClass->setItemDelegateForColumn(column, new MyDelegate(this)); 
+0

ませんので、私は、スタイルシート内の項目を識別するために、いくつかのプロパティを設定しQObject::setPropertyを使用することはできません!どうもありがとう :-) –