首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QTableView使用selectionModel选择多行

如何使用QTableView使用selectionModel选择多行
EN

Stack Overflow用户
提问于 2016-05-04 18:54:17
回答 3查看 9.2K关注 0票数 4

通过以下方式:

代码语言:javascript
复制
tableView = QTableView()
rows = [0, 1, 2]

tableView.selectRow(0)tableView.selectRow(2)在这种情况下不能工作,因为selectRow()只选择单行,取消所有其他行的选择。

有可用的selectionModel().select()方法。但是它接受QSelectionItem的对象作为参数。如何声明具有行号的QSelectionItem对象?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-04 19:35:55

您应该设置选择模式。

代码语言:javascript
复制
tableView->setSelectionMode(QAbstractItemView::MultiSelection);
票数 7
EN

Stack Overflow用户

发布于 2016-05-05 04:21:03

代码创建一个QTableViewQPushButton。按下按钮按连续顺序选择索引(从index1index2 )。是否可以按任何顺序选择索引仍然是一个未解决的问题。

代码语言:javascript
复制
def clicked():
    tableView.setFocus()
    selectionModel = tableView.selectionModel()
    index1 = tableView.model().index(0, 0)
    index2 = tableView.model().index(1, 2)
    itemSelection = QtGui.QItemSelection(index1, index2)
    selectionModel.select(itemSelection, QtGui.QItemSelectionModel.Rows | QtGui.QItemSelectionModel.Select)

app = QtGui.QApplication([])
window = QtGui.QWidget()
window.resize(400, 300)
tableView = QtGui.QTableView()

model = QtGui.QStandardItemModel(4, 2)
for row in range(0, 4):
    for column in range(0, 3):
        item = QtGui.QStandardItem("%s , %s"%(row, column))
        model.setItem(row, column, item)

tableView.setModel(model)

selectionModel = QtGui.QItemSelectionModel(model)
tableView.setSelectionModel(selectionModel)

button = QtGui.QPushButton('Select from 0,0 to 1,2')
button.clicked.connect(clicked)
layout = QtGui.QVBoxLayout()
layout.addWidget(tableView)
layout.addWidget(button)
window.setLayout(layout)
window.show()

app.exec_()
票数 5
EN

Stack Overflow用户

发布于 2017-09-12 16:44:16

select()还可以接受索引(以及选择行的模式),因此您可以这样做:

代码语言:javascript
复制
rows = [1,2,3]
indexes = [model.index(r, 0) for r in rows]
mode = QtCore.QItemSelectionModel.Select | QtCore.QItemSelectionModel.Rows
[tableView.selectionModel().select(index, mode) for i in indexes]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37035756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档