Python QTableView |如何在不按住 Ctrl 的情况下单击 select 多行?

Python QTableView | How to select multiple rows by click without holding down Ctrl?

我正在设计一个带有 QTableView 的 GUI,其中在需要时必须 select 多行。这意味着第一次点击将 select 该行,第二次点击将取消 select 该行。 所以我有两个具体问题:

  1. 如何将单元格 selection 转换为行 selection?
  2. 如何在不按住 Ctrl 的情况下转换完成多个 select 离子?

到 select 行而不是项目,您必须将它们设置为 QAbstractItemView::SelectRows 中的 selection 行为,并且如果您想要 selected 项目而不按任何您必须在 QAbstractItemView::MultiSelection:

中设置 selection 模式
import sys
from PyQt5 import QtGui, QtWidgets

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    model = QtGui.QStandardItemModel(10, 5)
    w = QtWidgets.QTableView()
    w.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
    w.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
    w.setModel(model)
    w.show()
    sys.exit(app.exec_())