我如何滚动到QTableView中的特定行?

问题描述 投票:2回答:1

我想在表格中滚动一个特别的行。我的QTableView模型代码如下。

class Customer(object):
    def __init__(self,name,number,status):
        self.name = name
        self.number = number
        self.status = status

class CustomerTableModel(QtCore.QAbstractTableModel):

    ROW_BATCH_COUNT = 1000

    def __init__(self):
        super(CustomerTableModel,self).__init__()
        self.headers = ['             İsim             ','  Telefon No (Örn 9053xx..)  ','   Mesaj Durumu   ']
        self.customers  = []
        self.rowsLoaded = CustomerTableModel.ROW_BATCH_COUNT

    def rowCount(self,index=QtCore.QModelIndex()):
        if not self.customers:
            return 0

        if len(self.customers) <= self.rowsLoaded:
            return len(self.customers)
        else:
            return self.rowsLoaded

    def addCustomer(self,customer):
        self.beginResetModel()
        self.customers.append(customer)
        self.endResetModel()

    def columnCount(self,index=QtCore.QModelIndex()):
        return len(self.headers)

    def data(self,index,role=QtCore.Qt.DisplayRole):
        col = index.column()
        customer = self.customers[index.row()]
        if role == QtCore.Qt.DisplayRole:
            if col == 0:
                return QtCore.QVariant(customer.name)
            elif col == 1:
                return QtCore.QVariant(customer.number)
            elif col == 2:
                return QtCore.QVariant(customer.status)
            return QtCore.QVariant()
        elif role == QtCore.Qt.TextAlignmentRole:
            return QtCore.Qt.AlignCenter

    def headerData(self,section,orientation,role=QtCore.Qt.DisplayRole):
        if role != QtCore.Qt.DisplayRole:
            return QtCore.QVariant()

        if orientation == QtCore.Qt.Horizontal:
            return QtCore.QVariant(self.headers[section])
        return QtCore.QVariant(int(section + 1))

我找到了解决此问题的功能,但它在QTableWidget上有效。我在下面找到了代码。

self.QtTableWidget.scrollToItem(item)

我无法将此功能用于QTableView。我该怎么做?还有其他功能吗?

python scroll pyqt5 qtableview scrollto
1个回答
1
投票

通常,对于所有从QAbstractItemView继承的类(例如QTableView,QTableWidget,QListView等),在scrollTo内部使用scrollTo方法:

scrollToItem
© www.soinside.com 2019 - 2024. All rights reserved.