栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何根据文本输入过滤PyQt QCombobox项目?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何根据文本输入过滤PyQt QCombobox项目?

试试这个代码,这是我在我的项目中使用的东西

import sysfrom PyQt4.QtGui import QComboBox, QApplication, QCompleter, QSortFilterProxyModel, QStandardItemModel, QStandardItemfrom PyQt4.QtCore import Qtclass ExtendedCombo( QComboBox ):    def __init__( self,  parent = None):        super( ExtendedCombo, self ).__init__( parent )        self.setFocusPolicy( Qt.StrongFocus )        self.setEditable( True )        self.completer = QCompleter( self )        # always show all completions        self.completer.setCompletionMode( QCompleter.UnfilteredPopupCompletion )        self.pFilterModel = QSortFilterProxyModel( self )        self.pFilterModel.setFilterCaseSensitivity( Qt.CaseInsensitive )        self.completer.setPopup( self.view() )        self.setCompleter( self.completer )        self.lineEdit().textEdited[unipre].connect( self.pFilterModel.setFilterFixedString )        self.completer.activated.connect(self.setTextIfCompleterIsClicked)    def setModel( self, model ):        super(ExtendedCombo, self).setModel( model )        self.pFilterModel.setSourceModel( model )        self.completer.setModel(self.pFilterModel)    def setModelColumn( self, column ):        self.completer.setCompletionColumn( column )        self.pFilterModel.setFilterKeyColumn( column )        super(ExtendedCombo, self).setModelColumn( column )    def view( self ):        return self.completer.popup()    def index( self ):        return self.currentIndex()    def setTextIfCompleterIsClicked(self, text):      if text:        index = self.findText(text)        self.setCurrentIndex(index)if __name__ == "__main__":    app = QApplication(sys.argv)    model = QStandardItemModel()    for i,word in enumerate( ['hola', 'adios', 'hello', 'good bye'] ):        item = QStandardItem(word)        model.setItem(i, 0, item)    combo = ExtendedCombo()    combo.setModel(model)    combo.setModelColumn(0)    combo.show()    sys.exit(app.exec_())


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号