我们从Python开源项目中,提取了以下3个代码示例,用于说明如何使用PyQt5.QtCore.QSortFilterProxyModel()。
def __init__(self, parent, data=None): super(ListFrame, self).__init__(parent, data_manager=data) self.ui = topics_list.Ui_topicsList() self.ui.setupUi(self) self._filter = QtCore.QSortFilterProxyModel() self._model = ListModel(self.data.idea_names.values(), self) self._onselect_listener = listener.Listener() self._filter.setSourceModel(self._model) self.ui.listWidget.setModel(self._filter) self.ui.listWidget.selectionModel().selectionChanged.connect(self._on_select_model) self.ui.filterText.textEdited.connect(self._filter.setFilterFixedString)
def setModel(self, model): smodel = QtCore.QSortFilterProxyModel(parent=self) smodel.setSourceModel(model) ret = super(VqtView, self).setModel(smodel) c = len(model.columns) for i in range(c): self.resizeColumnToContents(i) return ret
def __init__(self, parent=None): super(AdvComboBox, self).__init__(parent) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.setEditable(True) # add a filter model to filter matching items self.pFilterModel = QSortFilterProxyModel(self) self.pFilterModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.pFilterModel.setSourceModel(self.model()) # add a completer, which uses the filter model self.completer = QCompleter(self.pFilterModel, self) # always show all (filtered) completions self.completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion) self.setCompleter(self.completer) # connect signals def filter_function(text): self.pFilterModel.setFilterFixedString(str(text)) self.lineEdit().textEdited.connect(filter_function) self.completer.activated.connect(self.on_completer_activated) # on selection of an item from the completer, select the corresponding item from combobox