Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何使用with pyqt4搜索列表小部件中的项目_Python 2.7_Pyqt4 - Fatal编程技术网

Python 2.7 如何使用with pyqt4搜索列表小部件中的项目

Python 2.7 如何使用with pyqt4搜索列表小部件中的项目,python-2.7,pyqt4,Python 2.7,Pyqt4,在我的示例程序中,我想在列表小部件中显示大量的名称。在这个示例中,我想使用搜索按钮在列表小部件中搜索特定的项目,并在列表小部件中打印该项目名称 下面是我的代码: import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def in

在我的示例程序中,我想在列表小部件中显示大量的名称。在这个示例中,我想使用搜索按钮在列表小部件中搜索特定的项目,并在列表小部件中打印该项目名称

下面是我的代码:

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。试试看:

flags Qt::MatchFlags

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


对不起,我有PyQt5。试试看:

flags Qt::MatchFlags

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


我不想在linesearch中填写全名,先生,我只想在prin中填写区分大小写的内容i根据您的意愿更改示例。先生,我可以问一个小疑问吗?我不想在linesearch中填写全名,先生,我只想在prin中填写区分大小写的内容i根据您的意愿更改示例。先生,我可以问一个小疑问吗?
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_())