我刚开始使用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的新手,所以对我来说很好的解释或建议对我来说很重要。
答案 0 :(得分: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)
这一行不起作用 - 因为你试图在这里做的是选择界面中的行,其中有一个无(返回)值返回
您必须同时进行两次调用,首先滚动到该项目,然后选择行(或您想要的任何顺序,与订单无关)
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方法相同。