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)

以上三行語句將讀取被選擇文件並將其內容顯示在文本編譯器中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM