1. 程式人生 > >PyQt5:QFileDialog檔案對話方塊(22)

PyQt5:QFileDialog檔案對話方塊(22)

學習《PyQt4入門指南 PDF中文版.pdf 》筆記

檔案對話方塊允許使用者選擇檔案或者資料夾,被選擇的檔案可以進行讀或寫操作。

<span style="font-size:12px;">#!/usr/bin/python
# openfiledialog.py

from PyQt5.QtWidgets import QApplication, QAction, QFileDialog,  QTextEdit
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon

class OpenFile(QtWidgets.QMainWindow):
    def __init__(self, parent= None):
        QtWidgets.QWidget.__init__(self)
        
        self.setGeometry(300, 300, 150, 110)
        self.setWindowTitle('OpenFile')
        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)
        
        self.statusBar()
        self.setFocus()
        
        exit = QAction(QIcon('icons/Blue_Flower.ico'), 'Open', self)
        exit.setShortcut('Ctrl+O')
        exit.setStatusTip('Open new file')
        
        exit.triggered.connect(self.showDialog)
        
        menubar = self.menuBar()
        file = menubar.addMenu('&File')
        file.addAction(exit)
        
    def showDialog(self):
            filename,  _ = QFileDialog.getOpenFileName(self, 'Open file', './')
            if filename:
                file = open(filename)
                data = file.read() 
                self.textEdit.setText(data)

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    qb = OpenFile()
    qb.show()
    sys.exit(app.exec_())</span>

          我們在本示例程式中顯示一個選單欄,一個狀態列和一個被設定為中心部件的文字編輯器。其中狀態列的狀態資訊只有在使用者想要開啟檔案時才會顯示。單擊選單欄中的open選項將彈出檔案對話方塊供使用者選擇檔案。被選擇的檔案內容將被顯示在文字編輯部件中。

         classOpenFile(QtWidgets.QMainWindow):

             ...

                self.textEdit =QTextEdit()

                self.setCentralWidget(self.textEdit)

         本示例程式是基於QMainWindow視窗部件的,因為我們需要將文字編輯器設定為中心部件(QWidget部件類沒有提供setCentralWidget方法)。無須依賴佈局管理器,QMainWindow即可輕鬆完成設定中心部件的工作(使用setCentralWidget方法)

         filename,  _ = QFileDialog.getOpenFileName(self, 'Openfile', './')

         該語句將彈出檔案對話方塊。getOpenFileName()方法的第一個字串引數'Openfile'將顯示在彈出對話方塊的標題欄。第二個字串引數用來指定對話方塊的工作目錄。預設情況下檔案過濾器被設定為不過濾任何檔案(所有工作目錄中的檔案/資料夾都會被顯示)。

         file= open(filename)

         data = file.read()

          self.textEdit.setText(data)

         以上三行語句將讀取被選擇的檔案並將其內容顯示在文字編輯器中。