zoukankan      html  css  js  c++  java
  • 对话框类控件-QFileDialog

    QFileDialog是用于打开和保持文件的标准对话框。QFileDialog类继承自QDialog类。

    QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。

    QFileDialog类的常用方法:

      getOpenFileName()    返回用户所选择文件的名称,并打开该文件

      getSaveFileName()    使用用户选择的文件名称并保持文件

      setFileMode()        可以选择的文件类型,枚举常量是:

                     QFileDialog.AnyFile,任何文件

                        QFileDialog.ExistingFile,已存在的文件

                        QFileDialog.Drectory,文件目录

                     QFileDialog.ExistingFiles,已经存在的多个文件

      setFilter()        设置过滤器,只显示过滤器允许的文件类型

    案例24  QFileDialog的使用

    import sys
    from PyQt5.QtWidgets import QWidget, QApplication, QFileDialog, QPushButton, QVBoxLayout, QLabel, QTextEdit
    from PyQt5.QtGui import QPixmap
    from PyQt5.QtCore import QDir
    
    
    class FileDialogDemo(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
            layout = QVBoxLayout()
            self.btn = QPushButton("加载图片")
            self.btn.clicked.connect(self.getFile)
            layout.addWidget(self.btn)
            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("FileDialog 例子")
    
        def getFile(self):
            fname, _ = QFileDialog.getOpenFileName(self, "Open file", "c:/", "Image files (*.jpg *.gif *.png)")
            self.le.setPixmap(QPixmap(fname))
    
        def getFiles(self):
            dlg = QFileDialog()
            dlg.setFileMode(QFileDialog.AnyFile)
            dlg.setFilter(QDir.Files)
    
            if dlg.exec_():
                filenames = dlg.selectedFiles()
                f = open(filenames[0], "r")
    
                with f:
                    data = f.read()
                    self.contents.setText(data)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        demo = FileDialogDemo()
        demo.show()
        sys.exit(app.exec_())
  • 相关阅读:
    Contest Record
    Work at DP
    波兰题目补全计划
    BZOJ #3746: [POI2015]Czarnoksiężnicy okrągłego stołu 动态规划
    【HEOI 2018】制胡窜
    【HEOI 2018】林克卡特树
    省选之前的未完成的计划(截至到省选)
    小学半平面交
    小学扩展欧拉定理
    【复习】高斯消元解图上期望概率
  • 原文地址:https://www.cnblogs.com/lynsha/p/13427110.html
Copyright © 2011-2022 走看看