私はQTableViewを持っています。スクロールするときに選択範囲を移動したいので、カーソルが常に表示されます。QTableView - スクロール時に選択を変更します。
ありQTableView.selectRow(rowNo)
はあるが、あなたはどここれを呼び出すための提案を持っているのですか?
理想的には、選択した行をスクロールして中心にしたいと思います。
私はQTableViewを持っています。スクロールするときに選択範囲を移動したいので、カーソルが常に表示されます。QTableView - スクロール時に選択を変更します。
ありQTableView.selectRow(rowNo)
はあるが、あなたはどここれを呼び出すための提案を持っているのですか?
理想的には、選択した行をスクロールして中心にしたいと思います。
.rowを呼び出すことができます私はこの(PyQt4)のようにそれをやった:初期化時に
私はイベントをスクロールバーに接続します。
self.tableView.verticalScrollBar().valueChanged.connect(self.onScroll)
その後ハンドラで:
def onScroll(self, *args):
"Ensure that selected row moves when scrolling - it must be always visible."
tableView = self.tableView
currentRow = tableView.selectionModel().currentIndex().row()
rect = tableView.viewport().rect()
topRow = tableView.indexAt(rect.topLeft()).row()
if currentRow < topRow:
tableView.selectRow(topRow)
else:
bottomRow = tableView.indexAt(rect.bottomLeft()).row()
if currentRow > bottomRow:
tableView.selectRow(bottomRow)
メソッド.indexAt(viewport()。pos())を使用できます。位置を少し修正する必要があるかもしれません。すなわちそれをヘッダサイズだけ移動させる。あなたは、インデックスを持っている場合、あなたは、単に()メソッド