gpt4 book ai didi

qt - 如何为特定的 QTableWidgetItem 或 QTableWidget 中的行分配边框?

转载 作者:行者123 更新时间:2023-12-04 00:47:21 31 4
gpt4 key购买 nike

我正在尝试根据项目(单元格)中包含的信息使 QTableWidget 中的某些单元格具有不同颜色的边框。

我不想选择这些单元格并使用选择颜色样式,因为需要选择/突出显示不同的单元格。

例如。我有一个 3 列和 3 行的表。所有单元格中的每个单元格都有简单的文本。
[] [名称] [值] [单位]
[1][1][1][cm]
[2][二][2][中]
[3][三][3][米]

第一行被用户选中并突出显示,后台进程更新表中的值并将第三行中的值更新为4。现在我想让第三行周围有一个红色边框它。

最佳答案

要更改边框本身,您可能需要创建一个自定义委托(delegate)来执行以下操作:

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 );
}
}
}

然后你可以调用:

myTableWidget->setItemDelegate( new MyDelegate(this) );

您可以使用 QTableWidgetItem::setData()QModelIndex::data() 函数在表和委托(delegate)之间来回传递必要的信息

查看 QItemDelegate 的 qt 文档

关于qt - 如何为特定的 QTableWidgetItem 或 QTableWidget 中的行分配边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262318/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com