DFGBDSFH 2022-11-22 14:43 采纳率: 50%
浏览 16
已结题

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

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

img


大概出来长这样

img

  • 写回答

6条回答 默认 最新

  • 阿_旭 2022-11-24 12:21
    关注

    下面是我写的代码,我把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_())
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 赞助了问题酬金15元 11月22日
  • 修改了问题 11月22日
  • 展开全部

悬赏问题

  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动