alp*_*ric 2 python qt pyqt selectionmodel qtableview
带有:
tableView = QTableView()
rows = [0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
tableView.selectRow(0)否则tableView.selectRow(2)在这种情况下将不起作用,因为selectRow()仅选择单个行,而取消选择所有其他行。
有selectionModel().select()可用的方法。但是它接受QSelectionItems对象作为参数。我们如何声明QSelectionItem具有行号的对象?
您应该设置选择模式。
tableView->setSelectionMode(QAbstractItemView::MultiSelection);
Run Code Online (Sandbox Code Playgroud)
该代码创建了一个QTableView和QPushButton。按下按钮将按连续顺序选择索引(从index1到index2。是否可以按任何顺序选择索引仍然是一个悬而未决的问题。
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_()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3151 次 |
| 最近记录: |