Exemplo n.º 1
0
class UserListWidget(QListView):
    """
    This actual widget that shows the list of users.
    It contains a proxy that, in turn, contains a UserListModel.
    """
    def __init__(self, users, parent):
        super(UserListWidget, self).__init__(parent)
        self.model = UserListModel(users)

        self.proxy = QSortFilterProxyModel(self)
        self.proxy.setSourceModel(self.model)
        self.proxy.setFilterCaseSensitivity(Qt.CaseInsensitive)
        self.setModel(self.proxy)

        self.clicked.connect(parent.user_selected)
        self.adjustSize()
    
    def setUsers(self, users):
        self.model.setUsers(users)

    def getUser(self, index):
        return self.model.data(index, UserListModel.UserRole)

    def filter(self, text):
        self.proxy.setFilterRegExp(text)
        self.proxy.filterRegExp()