Python:QTableWidget scrollToItem()

时间:2012-09-04 16:50:29

标签: python pyqt4 qtablewidget

我刚开始使用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的新手,所以对我来说很好的解释或建议对我来说很重要。

1 个答案:

答案 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方法相同。