c++ - QTableView row setEnabled 等效函数调用?

标签 c++ qt qtableview

我正在寻找的是能够将表中的一行“灰显”,我正在使用设置了以下标志的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/

相关文章:

c++ - 如何找到 2 组的交集?

c++ - Visual Studios 能否用于在 C++ 中进行开发并仍然创建能够在 Mac 上运行的程序?

c++ - Qt 终止由 QConcurrent::run 生成的线程

C++/Qt - 从主窗口打开对话框 - 错误 LNK2019 - LNK2001 : unresolved external symbol

python - QFile 无法打开包含 unicode 字符的文件名

json - 填充 QTableView 表单 JSON 数组

c++ - 插入到 std::unordered_multimap 时有没有办法避免散列/equalityChecking?

c++ - 带有空字符的 std::string 是否可能?

c++ - 如何在 QTableView 中显示 SQLite 表

python-2.7 - 如何在PyQt中为QTableView的每个单元格添加右键菜单