我刚刚开始使用 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 新手,所以好的解释或建议对我来说意义重大。
最佳答案
所以,这一行:
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 方法中相同。
关于Python:QTableWidget 滚动到项目(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267993/