主程序
import os
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QWidget, QApplication, QFileDialog, QDialog
import read_dataui001
import read_dataui001_1 as ui_1
import sys
class 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.translate
self.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.file
def 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 = 0
text_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+1
if __name__ == '__main__':
app = QApplication(sys.argv)
mc = MyClass()
sys.exit(app.exec_())
调用程序
1)read_dataui001_1
from PyQt5 import QtCore, QtGui, QtWidgets
class 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.translate
Form.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, QtWidgets
class 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.translate
Form.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", "历史项目名称..."))