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)