There is a simple text editor. Faced a problem: when I clicked on the "X" button (red cross), in the file selection dialog box, I get the crash:
"Python program is not working"
Code:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QFileDialog, QApplication, QWidget, QMessageBox from PyQt5.QtGui import QIcon class Notepad(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.textEdit = QTextEdit() self.setCentralWidget(self.textEdit) self.setWindowIcon(QIcon("..\\source\\python.png")) self.statusBar() openFile = QAction(QIcon('..\\source\\open.png'), 'Open', self) openFile.setShortcut('Ctrl+O') openFile.setStatusTip('Open new File') openFile.triggered.connect(self.showDialog) saveFile = QAction(QIcon('..\\source\\save.png'), 'Save', self) saveFile.setShortcut('Ctrl+S') saveFile.setStatusTip('Save new File') saveFile.triggered.connect(self.saveDialog) menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(openFile) fileMenu.addAction(saveFile) self.setGeometry(300, 200, 750, 400) self.setWindowTitle('Notepad') self.show() def showDialog(self): fname = QFileDialog.getOpenFileName(self, 'Open file')[0] f = open(fname, 'r') with f: text = f.read() self.textEdit.setText(text) def saveDialog(self): fname = QFileDialog.getSaveFileName(self, 'Save file')[0] file = open(fname, 'w') text = self.textEdit.toPlainText() file.write(text) file.close() if __name__ == '__main__': app = QApplication(sys.argv) ex = Notepad() sys.exit(app.exec_()) The thought came that the reason is the inheritance from the QMainWindow class, but I did not think up how to solve the issue. Please help!