Bri*_*ian 2 qt qtablewidget qtablewidgetitem
我试图让我的QTableWidget中的某些单元格根据项目(单元格)中包含的信息具有不同的彩色边框.
我不想选择那些单元格并使用选择颜色样式,因为需要选择/突出显示不同的单元格.
对于前 我有一个包含3列和3行的表.所有单元格中的每一个都有简单的文本.
[] [名称] [值] [单位]
[1] [一] [1] [cm]
[2] [二] [2] [在]
[3] [三] [3] [m]
第一行由用户选择并突出显示,后台进程更新表中的值并将第3行中的值更新为4.现在我想让第3行周围有红色边框.
要更改边框本身,您可能需要创建一个自定义委托,它可以执行以下操作:
class MyDelegate : public QItemDelegate {
public:
MyDelegate( QObject *parent ) : QItemDelegate( parent ) { }
void paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const {
QItemDelegate::paint( painter, option, index );
if( /* some condition */ ) {
painter->setPen( Qt::red );
painter->drawRect( option.rect );
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话:
myTableWidget->setItemDelegate( new MyDelegate(this) );
Run Code Online (Sandbox Code Playgroud)
您可以使用QTableWidgetItem::setData()和QModelIndex::data()函数在表和委托之间来回传递必要的信息
请参阅QItemDelegate的qt文档
| 归档时间: |
|
| 查看次数: |
4933 次 |
| 最近记录: |