如何使用pyqt4在列表小部件中搜索项目

拉加瓦

在我的示例程序中,我想在列表小部件中显示很多名称。在那儿,我想使用搜索按钮在列表小部件中搜索特定项目,然后在列表小部件中打印该项目名称。

下面是我的代码:

import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        auto_search_vbox = QtGui.QVBoxLayout(self)
        hbox=QtGui.QHBoxLayout()
        le_search = QtGui.QLineEdit()
        se_btn = QtGui.QPushButton("Search")
        se_btn.clicked.connect(self.find_item)
        hbox.addWidget(le_search)
        hbox.addWidget(se_btn)
        auto_search_vbox.addLayout(hbox)
        self.listwidget = QtGui.QListWidget()
        self.total_list =["machine","printer","xerox bundles"]
        self.listwidget.addItems(self.total_list)
        auto_search_vbox.addWidget(self.listwidget)

        self.show()
    def find_item(self):
        out = self.listwidget.findItems("mac", QtCore.Qt.MatchExactly)
        print out   
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
尼克

抱歉,我有PyQt5。试试看:

标志Qt :: MatchFlags

该枚举描述了在模型中搜索项目时可以使用的匹配类型。

import sys
#from PyQt4.QtGui  import *
#from PyQt4.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore    import *
from PyQt5.QtGui     import *

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
        
    def initUI(self):
        
        self.le_search = QLineEdit()                            # self.   +++
        
        se_btn    = QPushButton("Search")
        se_btn.clicked.connect(self.find_item)
        
        self.listwidget = QListWidget()
        self.total_list = ["machine", "mac1", "printer", "Printer","xerox bundles", "2mac"]
        self.listwidget.addItems(self.total_list)        

        hbox      = QHBoxLayout()        
        hbox.addWidget(self.le_search)                          # self.   +++
        hbox.addWidget(se_btn)
        
        auto_search_vbox = QVBoxLayout(self)
        auto_search_vbox.addLayout(hbox)
        auto_search_vbox.addWidget(self.listwidget)

    def find_item(self):
#        out = self.listwidget.findItems("mac", QtCore.Qt.MatchExactly)          # ---
#        out = self.listwidget.findItems(self.le_search.text(), Qt.MatchExactly)  
        out = self.listwidget.findItems(self.le_search.text(), 
                                        Qt.MatchContains |          # +++
                                        Qt.MatchCaseSensitive)      # +++
        
        print("out->", [ i.text() for i in out ] ) 
        
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用pyqt4刷新小部件中的内容?

如何使用 pyqt4 制作闪烁的标签或小部件

如何使用pyqt4在滚动区域小部件中打开和保存文件

如何使用pyqt4删除表格小部件中的特定行边框

PyQt4 Python中的marge小部件

我如何使用pyqt4将不同的背景颜色应用于树小部件中父文本的每一行

如何获取小计量,即根据在pyqt4中的qtable小部件的数量微调框中给定的用户?

通过从在PyQt4中使用QSplitter()设置的按钮调用来删除窗口小部件

如何为Matplotlib小部件(navBar / canvas)设置PyQT4样式表?

使用PyQt4或PySide捕获屏幕,特定的小部件除外?

pyqt4 将图像设置为中央小部件

PyQT4日期时间小部件

PyQt4-使用QItemDelegate在QListView中显示小部件

如何将行编辑中的所有输入文本显示到pyqt4中的文本编辑小部件

在 Flutter 中,如何使用流 API 将项目列表转换为 Table 小部件?

PyQt4:如何向中央小部件添加两个对象并显示两个视频

如何使用PyQt4在Ubuntu中播放声音?

如何设置Pyqt小部件专注于新打开的项目?

pyqt5 迭代堆叠小部件中的项目?

如何在 PyQt5 的列表小部件中添加图像?

pyqt4小部件出现在布局之外

PyQt4:在一组小部件上添加一个 QSrollArea

添加新的小部件时,PyQt4滚动区域无法扩展(滚动)

是否可以在PYQT4小部件内运行python IDE?

如何在文本小部件中的Flutter中获取列表中项目的编号

如何更新列表中的小部件

如何使用 MutableStateFlow 搜索列表中的项目

从未调用过的列表小部件项目数据对象上的广告位(在PyQt 5.7中)

pyqt:如何删除小部件?