怎么设计一个界面,界面有一个按钮,点击该按钮选择文件,并读取文件内容显示在该界面上

怎么设计一个界面,界面有一个按钮,点击该按钮选择文件,并读取文件内容显示在该界面上

img


大概出来长这样

img

下面是我写的代码,我把txt,doc,docx,xls,xlsx这几种格式都试了一下,可以正常读取和显示在文本框内,只是关于一些文本框大小细节等问题,需要修改一下。

img


# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class filedialogdemo(QWidget):
    def __init__(self, parent=None):
        super(filedialogdemo, self).__init__(parent)
        layout = QVBoxLayout()
        self.le = QLabel("")
        layout.addWidget(self.le)
        self.btn1 = QPushButton("打开文本文件")
        self.btn1.clicked.connect(self.getfiles)
        layout.addWidget(self.btn1)
        self.contents = QTextEdit()
        layout.addWidget(self.contents)
        self.setLayout(layout)
        self.setWindowTitle("打开文件示例")


    def getfiles(self):
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        # QFileDialog.ExistingFiles可选择打开多个文件,返回文件路径列表
        # dlg.setFileMode(QFileDialog.ExistingFiles)
        dlg.setFilter(QDir.Files)

        if dlg.exec_():
            filenames = dlg.selectedFiles()
            file_name = filenames[0]
            if file_name.endswith('doc') or file_name.endswith('docx'):
                import docx
                data = docx.Document(file_name)
                content = ''
                for each in data.paragraphs:
                    content += str(each.text)
                    content += '\n'
            elif file_name.endswith('xls') or file_name.endswith('xlsx'):
                import pandas as pd
                xlsx = pd.ExcelFile(file_name)
                content = str(pd.read_excel(xlsx))
            else:
                with open(file_name, 'r', encoding='utf-8',errors = 'ignore') as f:
                    content = f.read()
            self.contents.setText(content)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = filedialogdemo()
    ex.show()
    sys.exit(app.exec_())

提供参考链接:用PYQT5设计Python运行界面:选择文件夹的文件并自动获取文件地址,链接:https://blog.csdn.net/qq_44040327/article/details/122282719

在“选择文件”的对话框后面加一个文字为“打开”的按钮。给按钮组件添加动作事件。在事件中加入判断,在用户选择了文件的情况下读取文件、处理文件数据,然后设置界面组件的显示值

试试这个 https://blog.csdn.net/qq_44040327/article/details/122282719

tkinter

python使用界面-如何使用Python建立有窗口、按钮之类的图形界面
https://blog.csdn.net/weixin_37988176/article/details/109414544