我正在寻找的是能够将表中的一行“灰显”,我正在使用设置了以下标志的QTableView
:
this->setSelectionMode(QAbstractItemView::ExtendedSelection);
this->setSelectionBehavior(QAbstractItemView::SelectRows);
QTableView
是不可编辑的,但基本上正如预期的那样,当单击一行时,它会突出显示为蓝色。我想添加一个上下文菜单选项来灰显一行而不是隐藏它。基本上,对于其他小部件,您可以调用 setEnabled(bool)
,它只是使您可以看到该小部件,但不能单击它或更改值等。我想知道是否有等效的QTableView
中的单行还是我必须对样式表等进行一些尴尬的黑客操作?
最佳答案
我假设您正在使用QAbstractTableModel
。
def data(self, index, role=Qt.DisplayRole):
if role == Qt.BackgroundRole:
# myItems is your data list for QAbstractTableModel
# myObject.isDisabled is your decision flag
if self.myItems[index.row()].isDisabled is True:
return QVariant(Qt.gray)
# other roles if needed (Display, align, foreground, etc.)
阅读完整文档 -> QtDoc.QAbstractTableModel
关于c++ - QTableView row setEnabled 等效函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825742/