【发布时间】:2019-04-13 12:13:49
【问题描述】:
我需要能够以编程方式选择 TableView 的某些行,从而向用户显示选定的行。 当然,用户应该不能通过单击此处和此处来更改选定的行。
目前,我发现禁用用户交互的唯一方法是:
self.table_view.setEnabled(False)
虽然这解决了用户的选择问题,但它也改变了表格的外观,使其全部变灰:
【问题讨论】:
我需要能够以编程方式选择 TableView 的某些行,从而向用户显示选定的行。 当然,用户应该不能通过单击此处和此处来更改选定的行。
目前,我发现禁用用户交互的唯一方法是:
self.table_view.setEnabled(False)
虽然这解决了用户的选择问题,但它也改变了表格的外观,使其全部变灰:
【问题讨论】:
打开 QDesigner 并加载您的 .ui 文件。单击您的 QTableView 并在属性编辑器(右侧面板)中向下滚动到紫色区域。在那里你会看到editTriggers,展开它。检查第一个写着NoEditTriggers 的人。
这将禁止用户编辑表格中的单元格。如果我的说明不够清楚,请告诉我,我可以提供图片。
【讨论】:
self.table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)。
如果我正确理解您的问题,您必须使用属性:
setSelectionBehavior()
table_view.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
table_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
【讨论】: