<p>在本例中,<code>table.selectRow(i)</code>正在处理多重选择:</p>
<pre><code>import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class MyTableWidget(QtWidgets.QTableWidget):
def __init__(self, parent = None):
QtWidgets.QTableWidget.__init__(self, parent)
self.setRowCount(5)
self.setColumnCount(3)
self.items = [['a1','b1', 'c1'], ['a2','b2','c2'], ['a3','b3','c3'], ['a4','b4','c4'], ['a5','b5','c5']]
self.hh = ['a', 'b','c']
self.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
selected = [1,2,4]
self.setSel(selected)
for r in range(0,len(self.items)):
for c in range(0,len(self.items[0])):
item = QtWidgets.QTableWidgetItem()
item.setText(self.items[r][c])
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable)
self.setItem(r,c,item)
def setSel(self, selection):
for i in selection:
self.selectRow(i)
app = QtWidgets.QApplication(sys.argv)
widget = MyTableWidget()
widget.show()
sys.exit(app.exec_())
</code></pre>
<p>如果在设置选择后调用<code>setSelectionMode</code>,我将获得您描述的行为</p>