gpt4 book ai didi

QTableWidget选择颜色

转载 作者:行者123 更新时间:2023-12-02 01:20:27 25 4
gpt4 key购买 nike

我希望选定的单元格具有不同的背景颜色。默认情况下,所选单元格中只有一条细下划线。

我已经尝试过这个:

table->setStyleSheet("QTableView {selection-background-color: #0000FF; selection-color: #00FF00;}

但它只会更改指针位于单元格上时显示的颜色。指针离开后,无论通过table->selectRow(selRow)选择单元格,都只有下划线。可能它在其他平台上看起来有所不同。

有很多主题相同的帖子,但大多数答案都是使用上面的样式表。没有任何效果,只有“移动颜色”发生变化。

提前致谢,问候马蒂亚斯

最佳答案

class BackgroundDelegate : public QStyledItemDelegate {
public:
explicit BackgroundDelegate(QObject *parent = 0)
: QStyledItemDelegate(parent){}
void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const {
// Fill the background before calling the base class paint
// otherwise selected cells would have a white background
QVariant background = index.data(Qt::BackgroundRole);
if (background.canConvert<QBrush>())
painter->fillRect(option.rect, background.value<QBrush>());
// the comment below makes selection transparent
//QStyledItemDelegate::paint(painter, option, index);
// To draw a border on selected cells
if(option.state & QStyle::State_Selected) {
painter->save();
QPen pen(Qt::black, 2, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin);
int w = pen.width()/2;
painter->setPen(pen);
painter->drawRect(option.rect.adjusted(w,w,-w,-w));
painter->restore();
}
}
};

然后 table->setItemDelegateForColumn(2, new BackgroundDelegate(this));

关于QTableWidget选择颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587709/

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