热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PyQt根据关键字读取制定文件夹下文件并将其显示在ListWidget中,附有删除和查看功能

主程序importosfromPyQt5importQtWidgets,QtCorefromPyQt5.QtWidgetsimportQWidget,QApplication,

主程序

import osfrom PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QWidget, QApplication, QFileDialog, QDialog
import read_dataui001
import read_dataui001_1 as ui_1
import sysclass MyClass(QWidget,read_dataui001.Ui_Form):def __init__(self):super().__init__()self.src_dir_path = 'H:\树莓派工作'self.filelist = os.listdir(self.src_dir_path)self.InitUi()def InitUi(self):self.setupUi(self)self.setWindowTitle("小刘")self.child1 = QDialog(self)self.child1_Ui = ui_1.Ui_Form()self.child1_Ui.setupUi(self.child1)self._translate = QtCore.QCoreApplication.translateself.pushButton.clicked.connect(self.Read_data)self.pushButton_2.clicked.connect(self.Delete_data)self.lineEdit.textChanged.connect(self.Search_File)self.listWidget.doubleClicked.connect(self.MyItem)self.show()def MyItem(self): #鼠标双击相应事件a = self.listWidget.currentItem()self.file = a.text()self.file = 'H:\树莓派工作\\' + self.filedef Delete_data(self):if os.path.exists(self.file): # 如果文件存在# 删除文件,可使用以下两种方法。os.remove(self.file)# os.unlink(path)else:print('no such file:%s' % self.file) # 则返回文件不存在def Read_data(self):if os.path.exists(self.file):with open(self.file, encoding='utf-8') as file_obj:contents = file_obj.read()data = contents.rstrip()print(data)self.child1_Ui.label.setText(data)else :self.child1_Ui.label.setText("no such file")self.child1.show()def List_Data(self,i,data): #将匹配成功的文件显示在界面上item = QtWidgets.QListWidgetItem()self.listWidget.addItem(item)item = self.listWidget.item(i)item.setText(self._translate("Form",data))def Search_File(self,path): #搜索与输入框关键词匹配的文件i = 0text_data = self.lineEdit.text()for file in self.filelist:sub_path = os.path.join(self.src_dir_path, file) # 获取文件的绝对路径if (os.path.isdir(sub_path)): # 判断是否为文件夹,如果是文件夹则忽略continue# temppath = os.listdir(sub_path)# self.Search_File(path) # 递归调用函数,目的是遍历所有文件else:if path in file:self.List_Data(i,file)i = i+1if __name__ == '__main__':app = QApplication(sys.argv)mc = MyClass()sys.exit(app.exec_())

调用程序
1)read_dataui001_1

from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(953, 768)self.label = QtWidgets.QTextEdit(Form)self.label.setGeometry(QtCore.QRect(0, 0, 951, 771))self.label.setObjectName("textEdit")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))

2)read_dataui001

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'read_dataui001.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(1130, 580)Form.setMaximumSize(QtCore.QSize(1130, 580))Form.setStyleSheet("border-color: rgb(0, 85, 255);")self.label = QtWidgets.QLabel(Form)self.label.setGeometry(QtCore.QRect(40, 40, 300, 50))self.label.setMaximumSize(QtCore.QSize(300, 50))font = QtGui.QFont()font.setPointSize(16)self.label.setFont(font)self.label.setStyleSheet("background-color: rgb(0, 85, 255);\n"
"border-color: rgb(255, 85, 0);")self.label.setFrameShape(QtWidgets.QFrame.Box)self.label.setFrameShadow(QtWidgets.QFrame.Sunken)self.label.setTextFormat(QtCore.Qt.RichText)self.label.setAlignment(QtCore.Qt.AlignCenter)self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(Form)self.label_2.setGeometry(QtCore.QRect(40, 120, 100, 30))self.label_2.setMaximumSize(QtCore.QSize(100, 30))font = QtGui.QFont()font.setPointSize(13)self.label_2.setFont(font)self.label_2.setStyleSheet("border-color: rgb(255, 0, 0);\n"
"border-left-color: rgb(255, 0, 0);")self.label_2.setFrameShape(QtWidgets.QFrame.Box)self.label_2.setFrameShadow(QtWidgets.QFrame.Sunken)self.label_2.setLineWidth(2)self.label_2.setAlignment(QtCore.Qt.AlignCenter)self.label_2.setObjectName("label_2")self.lineEdit = QtWidgets.QLineEdit(Form)self.lineEdit.setGeometry(QtCore.QRect(40, 160, 141, 41))self.lineEdit.setObjectName("lineEdit")self.pushButton = QtWidgets.QPushButton(Form)self.pushButton.setGeometry(QtCore.QRect(40, 210, 141, 41))self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(Form)self.pushButton_2.setGeometry(QtCore.QRect(40, 270, 141, 41))self.pushButton_2.setObjectName("pushButton_2")self.frame = QtWidgets.QFrame(Form)self.frame.setGeometry(QtCore.QRect(190, 90, 911, 461))self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)self.frame.setFrameShadow(QtWidgets.QFrame.Raised)self.frame.setObjectName("frame")self.listWidget = QtWidgets.QListWidget(self.frame)self.listWidget.setGeometry(QtCore.QRect(0, 90, 911, 371))self.listWidget.setObjectName("listWidget")item = QtWidgets.QListWidgetItem()self.listWidget.addItem(item)self.label_3 = QtWidgets.QLabel(self.frame)self.label_3.setGeometry(QtCore.QRect(30, 10, 81, 21))self.label_3.setObjectName("label_3")self.label_4 = QtWidgets.QLabel(self.frame)self.label_4.setGeometry(QtCore.QRect(10, 40, 141, 31))self.label_4.setFrameShape(QtWidgets.QFrame.Box)self.label_4.setObjectName("label_4")self.label_5 = QtWidgets.QLabel(self.frame)self.label_5.setGeometry(QtCore.QRect(200, 10, 81, 21))self.label_5.setObjectName("label_5")self.label_6 = QtWidgets.QLabel(self.frame)self.label_6.setGeometry(QtCore.QRect(330, 10, 81, 21))self.label_6.setObjectName("label_6")self.label_7 = QtWidgets.QLabel(self.frame)self.label_7.setGeometry(QtCore.QRect(450, 10, 81, 21))self.label_7.setObjectName("label_7")self.label_8 = QtWidgets.QLabel(self.frame)self.label_8.setGeometry(QtCore.QRect(580, 10, 81, 21))self.label_8.setObjectName("label_8")self.label_9 = QtWidgets.QLabel(self.frame)self.label_9.setGeometry(QtCore.QRect(740, 10, 81, 21))self.label_9.setObjectName("label_9")self.label_10 = QtWidgets.QLabel(self.frame)self.label_10.setGeometry(QtCore.QRect(190, 40, 111, 31))self.label_10.setFrameShape(QtWidgets.QFrame.Box)self.label_10.setObjectName("label_10")self.label_11 = QtWidgets.QLabel(self.frame)self.label_11.setGeometry(QtCore.QRect(320, 40, 81, 31))self.label_11.setFrameShape(QtWidgets.QFrame.Box)self.label_11.setObjectName("label_11")self.label_12 = QtWidgets.QLabel(self.frame)self.label_12.setGeometry(QtCore.QRect(440, 40, 91, 31))self.label_12.setFrameShape(QtWidgets.QFrame.Box)self.label_12.setObjectName("label_12")self.label_13 = QtWidgets.QLabel(self.frame)self.label_13.setGeometry(QtCore.QRect(570, 40, 91, 31))self.label_13.setFrameShape(QtWidgets.QFrame.Box)self.label_13.setObjectName("label_13")self.label_14 = QtWidgets.QLabel(self.frame)self.label_14.setGeometry(QtCore.QRect(710, 40, 141, 31))self.label_14.setFrameShape(QtWidgets.QFrame.Box)self.label_14.setObjectName("label_14")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.label.setText(_translate("Form", "历史测量数据"))self.label_2.setText(_translate("Form", "关键词搜索"))self.pushButton.setText(_translate("Form", "读取历史数据文件"))self.pushButton_2.setText(_translate("Form", "删除历史数据文件"))__sortingEnabled = self.listWidget.isSortingEnabled()self.listWidget.setSortingEnabled(False)item = self.listWidget.item(0)item.setText(_translate("Form", "New Item"))self.listWidget.setSortingEnabled(__sortingEnabled)self.label_3.setText(_translate("Form", "历史项目名称"))self.label_4.setText(_translate("Form", "历史项目名称..."))self.label_5.setText(_translate("Form", "历史测量线路"))self.label_6.setText(_translate("Form", "历史检查人"))self.label_7.setText(_translate("Form", "历史起始里程"))self.label_8.setText(_translate("Form", "历史里程方向"))self.label_9.setText(_translate("Form", "历史测量日期"))self.label_10.setText(_translate("Form", "历史项目名称..."))self.label_11.setText(_translate("Form", "历史项目名称..."))self.label_12.setText(_translate("Form", "历史项目名称..."))self.label_13.setText(_translate("Form", "历史项目名称..."))self.label_14.setText(_translate("Form", "历史项目名称..."))


推荐阅读
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • 转载:MFC 获得各类指针、句柄的方法
    2019独角兽企业重金招聘Python工程师标准转载:最近有些人在问MFC编程一些要点,有一些句柄的获取、指针的获取是 ... [详细]
  • 九、删除用户 并提交代码到git仓库
    (1)弹框询问用户是否删除数据 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • Excel数据处理中的七个查询匹配函数详解
    本文介绍了Excel数据处理中的七个查询匹配函数,以vlookup函数为例进行了详细讲解。通过示例和语法解释,说明了vlookup函数的用法和参数的含义,帮助读者更好地理解和运用查询匹配函数进行数据处理。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
  • VS2010MFC(对话框:为对话框添加控件)
    转自:http:www.jizhuomi.comsoftware151.html上一讲创建了一个名为“Addition”的工程,目的是生成一个实现加法运 ... [详细]
  • C#DataGridView控件中数据导出到Excel方法一:usingSystem;usingSystem.Collections.Generic;usingSys ... [详细]
author-avatar
mobiledu2502927067
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有