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 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)