1

Pythonを使い始めたばかりなので、問題が発生します。どこでも検索して、これにたどり着きました。QT-Designerを使用して簡単なGUIを作成しました。tableWidgetが入力された後、必要なのは行10まで自動的にスクロールすることだけです。これは、次のように成功しました。

for i in range(0, self.rows):
    ...filling table...
self.ui.tableWidget.scrollToItem(self.ui.tableWidget.item(10, 3), QtGui.QAbstractItemView.PositionAtCenter)
self.ui.tableWidget.scrollToItem(self.ui.tableWidget.selectRow(10), QtGui.QAbstractItemView.PositionAtCenter)

問題:これは3行目または4行目がないと機能しません。私が言ったように、私はPythonを初めて使用するので、適切な説明や提案は私にとって大きな意味があります。

4

1 に答える 1

3

したがって、この行:

self.ui.tableWidget.scrollToItem(self.ui.tableWidget.item(10, 3), QtGui.QAbstractItemView.PositionAtCenter)

self.ui.tableWidget.item(10, 3) を実行した結果としてアイテムが返されるため、機能します

self.ui.tableWidget.scrollToItem(self.ui.tableWidget.selectRow(10), QtGui.QAbstractItemView.PositionAtCenter)

この行は機能しません。ここで行おうとしているように見えるのは、None (void) 値を返すインターフェイス内の行を選択するためです。

両方の呼び出しを行う必要があります。最初にアイテムまでスクロールしてから行を選択します(または、必要な順序で、順序は関係ありません)

item = self.ui.tableWidget.item(10, 3)
self.ui.tableWidget.scrollToItem(item, QtGui.QAbstractItemView.PositionAtCenter)
self.ui.tableWidget.selectRow(10)

C++ ではエラーが発生しますが、Python では void を返すメソッドは None を返します。これは、null ポインターを scrollToItem メソッドに渡すのと同じです。

于 2012-09-04T17:03:53.360 に答える