Python 更改QTableWidget默认选择颜色,并使其半透明

Python 更改QTableWidget默认选择颜色,并使其半透明,python,pyqt,qtablewidget,Python,Pyqt,Qtablewidget,我试图更改QTableWidget中选择的默认颜色,但我需要使其透明,以便仍然可以看到底层单元格的颜色 我用过: self.setStyleSheet("QTableView{ selection-background-color: rgba(255, 0, 0, 50); }") self.setSelectionBehavior(QAbstractItemView.SelectRows) 现在选择颜色是红色,但有些单元格定义为: cell.setBackgroundColor(color

我试图更改QTableWidget中选择的默认颜色,但我需要使其透明,以便仍然可以看到底层单元格的颜色

我用过:

self.setStyleSheet("QTableView{ selection-background-color: rgba(255, 0, 0, 50);  }")
self.setSelectionBehavior(QAbstractItemView.SelectRows)
现在选择颜色是红色,但有些单元格定义为:

cell.setBackgroundColor(color)
...
self.setItem(i, j, cell)
而且单元格的颜色仍然被选择颜色覆盖(没有混合,只有粉红-红色选择)。我尝试为单元格设置前景色而不是背景色:

brush = QBrush(color, Qt.SolidPattern)
cell.setForeground(brush)
但这并没有改变任何事情。 那么,有没有一个简单的方法来做这件事,或者我应该手动处理选择? (用我自己的颜色重新绘制所选行)
提前感谢。

我有几乎相同的场景,但插入的是单元格中的文本,我希望选择完全透明的内容(因此不改变背景色) 如果您设置透明颜色,它将是实心的(qt中的bug?),所以我将文本设置为粗体(=选中),并切换选择样式 这是代码,也许会有帮助

/.h
#包括
类SelectionControlDelegate:公共QStyledItemDelegate
{
公众:
SelectionControlDelegate(QObject*parent=0);
void initStyleOption(QStyleOptionViewItem*选项,常量QModelIndex&index)常量覆盖;
};
//.cpp
SelectionControlDelegate::SelectionControlDelegate(QObject*parent):QStyledItemDelegate(parent)
{
}
void SelectionControlDelegate::initStyleOption(QStyleOptionViewItem*选项,常量QModelIndex&索引)常量
{
QStyledItemDelegate::initStyleOption(选项,索引);
const bool selected=option->state&QStyle::state\u selected;
option->font.setBold(选中);//这将表示选中状态
如果(选定)
{
option->state=option->state&~QStyle::state_Selected;//这将阻止选择样式=无突出显示
}
}
//在小部件类中
...
_ui->tableView->setItemDelegate(新建SelectionControlDelegate(此));
...
//当设置单元格背景时,我也会更改文本颜色

QColor textColor=backgroundColor.value()尝试将样式表仅用于
QTableWidget::item{background color:rgba(255,0,0,50%);}
设置正常单元格颜色和
QTableWidget::item:selected{background color:rgba(20,0,0,50%)}
设置选定单元格颜色如果我使用
QTableWidget::item
设置背景颜色,每个单元格的背景颜色都是相同的,对吗?问题是,我们为每个单元格设置了不同的颜色。我们重新调整了小部件的用途,以显示一个三值矩阵,因此颜色才是最重要的。你是对的,所以据我所知,每个单元格都需要不同的颜色,但所选的颜色,每个单元格都需要相同的颜色,并具有一定的透明度(在你的例子中为红色),然后尝试在
QTableWidget
上应用样式表,只使用
QTableWidget::item:selected{background color:rgba(255,0,0,50%)}
我只尝试过使用您给我的行(顺便问一下,这一行和
QTableView{selection background color:rgba(255,0,50);
)但结果最终是一样的。而且选择不一定是红色,甚至不一定是颜色:如果a可以环绕整行,也可以。