PyQt4文件对话框QFileDialog

Posted 月光诗人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt4文件对话框QFileDialog相关的知识,希望对你有一定的参考价值。

文件对话框允许用户选择文件或文件夹,被选择的文件可进行读或写操作。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore 

class OpenFile(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle(\'Open File\')
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)
        self.statusBar()
        self.setFocus()
        
        exit = QtGui.QAction(QtGui.QIcon(\'open.png\'), \'Open\', self)
        exit.setShortcut(\'Ctrl+O\')
        exit.setStatusTip(\'Open new File\')
        self.connect(exit, QtCore.SIGNAL(\'triggered()\'), self.showDialog)
        
        menubar = self.menuBar()
        file = menubar.addMenu(\'&File\')
        file.addAction(exit)
        
    def showDialog(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, \'Open file\', \'./\')
        file = open(filename)
        data = file.read()
        self.textEdit.setText(data)
        
app = QtGui.QApplication(sys.argv)
of = OpenFile()
of.show()
sys.exit(app.exec_())

效果:

我们在本示例程序中显示了一个菜单栏、一个状态栏和一个被设置为中心部件的文本编辑器。其中状态栏的状态信息只有在用户想要打开文件时才会显示。单击菜单栏中的Open选项将弹出文件对话框供用户选择文件。被选择的文件内容将被显示在文本编辑器部件中。

class OpenFile(QtGui.QMainWindow):
    ……
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)

本示例程序时基于QMainWindow窗口部件的,因为我们需要将文本编辑器设置为中心部件(QWidget类没有提供setCentralWidget方法)。无须依赖布局管理器,QMainWindow即可轻松完成配置中心部件的工作(使用setCentralWidget方法)。

        filename = QtGui.QFileDialog.getOpenFileName(self, \'Open file\', \'./\')

该语句将弹出文件对话框。getOpenFileName()方法的第一个字符串参数\'Open File\'将显示在弹出对话框的标题栏。第二个字符串参数用来指定对话框的工作目录。默认情况下文件过滤器被设置为不过滤任何文件(所有工作目录中的文件/文件夹都会被显示)。

        file = open(filename)
        data = file.read()
        self.textEdit.setText(data)

以上三行语句将读取被选择文件并将其内容显示在文本编译器中。

以上是关于PyQt4文件对话框QFileDialog的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 和 PyQt5 中的 QFileDialog 字符串有区别吗?

PyQt4和PyQt5中的QFileDialog字符串有区别吗?

Python PyQt4 QFileDialog 图像并在 QListWidget 中加载

Qt入门系列开发教程对话框QFileDialog文件对话框

QFileDialog 查看文件夹和文件但只选择文件夹?

QFileDialog文件对话框