Python QTableView |如何在不按住 Ctrl 的情况下通过单击选择多行?

Posted

技术标签:

【中文标题】Python QTableView |如何在不按住 Ctrl 的情况下通过单击选择多行?【英文标题】:Python QTableView | How to select multiple rows by click without holding down Ctrl? 【发布时间】:2019-01-15 06:33:16 【问题描述】:

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

    如何将单元格选择转换为行选择? 如何在不按住Ctrl的情况下转换完成多选?

【问题讨论】:

【参考方案1】:

要选择行而不是项目,您必须在QAbstractItemView::SelectRows 中将它们设置为选择行为,如果您希望在不按任何键的情况下选择项目,则必须在QAbstractItemView::MultiSelection 中设置选择模式:

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_())

【讨论】:

以上是关于Python QTableView |如何在不按住 Ctrl 的情况下通过单击选择多行?的主要内容,如果未能解决你的问题,请参考以下文章

Python QTableView:如何在列中插入项目

PyQt4 - QTableView - 如何循环 QTableView

是否可以在不按住按钮的情况下按住鼠标按钮 2、3、4、5?

在 qtableview pyqt4 python 中使用图像委托?

在 QTableView 中移动完整的行

尝试在 QTableView 中编辑单元格时调用 QFileDialog