PyQt5 QTableView:如何在保留默认样式/颜色的同时禁用用户交互/选择?

时间:2019-04-13 12:13:49

标签: python pyqt pyqt5

我需要能够以编程方式选择TableView的某些行,从而向用户显示选定的行。 当然,用户应该无法通过单击此处和此处来更改选定的行。

当前,我发现禁用用户交互的唯一方法是:

self.table_view.setEnabled(False)

尽管这可以解决用户的选择问题,但它也改变了表格的外观,使其全部变为灰色:

enter image description here

如何恢复原始样式,使选定的行显示为蓝色? enter image description here

2 个答案:

答案 0 :(得分:0)

打开QDesigner并加载您的.ui文件。单击QTableView,然后在“属性编辑器”(右侧面板)中向下滚动到紫色区域。在那里,您将看到editTriggers,将其展开。检查第一个显示NoEditTriggers的内容。

这将使用户无法编辑表中的单元格。如果我的说明不够清楚,请告诉我。

答案 1 :(得分:0)

如果我正确理解了您的问题,则必须使用属性:

  • setSelectionMode()
  • setSelectionBehavior()

    table_view.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
    table_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)