Bestands kiezer
Op deze pagina:
De mogelijkheid om een bestand te kiezen en dat te openen en te tonen zie je hieronder:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtWidgets import QAction, QFileDialog, QTextEdit
from PyQt5.QtGui import QIcon
class Venster(QMainWindow):
def __init__(self):
super(Venster, self).__init__()
self.initUI()
def initUI(self):
self.textEdit = QTextEdit()
self.setCentralWidget(self.textEdit)
self.statusBar()
openFile = QAction(QIcon('open.png'), 'Open', self)
openFile.setShortcut('Ctrl+O')
openFile.setStatusTip('Open nieuw bestand')
openFile.triggered.connect(self.showDialog)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&Bestand')
fileMenu.addAction(openFile)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Bestand selecteren')
self.show()
def showDialog(self):
# Het derde argument bij getOpenFileName is een default pad,
# de schrijfwijze verschilt echter per OS,
# in dit geval wordt '.' gekoezen, dat is de huidige directory
fname,_ = QFileDialog.getOpenFileName(self, 'Open bestand', '.',"All Files (*);;Text Files (*.txt)")
f = open(fname, 'r')
with f:
data = f.read()
self.textEdit.setText(data)
# het pad en de naam van het gekozen bestand in de statusbalk tonen
self.statusBar().showMessage(fname)
def main():
app = QApplication(sys.argv)
window = Venster()
sys.exit(app.exec())
if __name__ == '__main__':
main()