Pyqt4的对话框 -- 文件对话框

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

# QInputDialog 文件对话框
# 本示例包含一个菜单栏,一个状态栏和一个被设置为中心部件的文本编辑器。
# 状态栏的状态信息只有在用户想要打开文件时才会显示。单击菜单栏中的Open选项将弹出文件对话框供用户选择文件。被选择的文件内容将被显示在文本编辑器部件中
import sys
from PyQt4 import QtCore, QtGui

class MainWindow(QtGui.QMainWindow):
    
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        
        self.setGeometry(300, 300, 350, 80)
        self.setWindowTitle('OpenFile')
        
        # 本例程序是基于QMainWindow窗口部件的,因为需要将文本编辑器设置为中心部件(QWidget部件类没有提供给setCenterWidget方法)
        # 无须依赖布局管理器,QMainWindow即可轻松的完成设置中心部件的工作(使用setCenterWidget()方法)
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)
        
        
        self.statusBar()
        self.setFocus()
        
        exit = QtGui.QAction(QtGui.QIcon('icons\exit.png'), 'Open', self)
        exit.setShortcut('Ctrl+Q')
        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):
        
        # 以下语句将弹出文件对话框。
        # getOpenFileName()方法的第一个字符串参数‘Open File'将显示在弹出对话框的标题栏。
        # 第二个字符串参数用来指定对话框的工作目录。默认情况下文件过滤器被设置为不过滤任何文件。(所有工作目录中的文件/文件夹都会被显示)
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file', '/')
        
        # 以下三行语句将读取被选择的文件并将其内容显示在文本编辑器中。
        file = open(filename)
        data = file.read()
        self.textEdit.setText(data)
    
               
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

 

 

posted @ 2017-07-20 14:36  蒋励  阅读(532)  评论(0编辑  收藏  举报