• 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)

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

  • 相关阅读:
    Jquery-EasyUI学习2~
    IIS——发布网站
    一致性哈希算法
    利用ZTree链接数据库实现 [权限管理]
    Form表单提交的简要方式
    Redis学习之5种数据类型操作、实现原理及应用场景
    redis对比其余数据库
    ZooKeeper概述(转)
    Zookeeper-Zookeeper可以干什么
    Java内存分配及变量存储位置实例讲解
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5354727.html
Copyright © 2020-2023  润新知