本文是对《Python Qt
GUI快速编程》的第9章的多文档界面的例子texteditor用Python3+PyQt5进行改写。
注:import qrc_resources,资源文件resources.qrc如下:
http://s1/mw690/003ytqMFzy78bzZLtks20&690实现多文档界面(MDI)" TITLE="【原创】python3+PyQt5
实现多文档界面(MDI)" />
sudo pyrcc5 -o qrc_resources.py resources.qrc
生成qrc_resources.py
/home/yrd/eric_workspace/chap09/textedit.py
from PyQt5.QtCore import (QFile, QFileInfo, QIODevice,
QTextStream, Qt)
from PyQt5.QtWidgets import (QFileDialog, QMessageBox,
QTextEdit)
class TextEdit(QTextEdit):
NextId =
1
def
__init__(self, filename="", parent=None):
super(TextEdit, self).__init__(parent)
self.setAttribute(Qt.WA_DeleteOnClose)
self.filename = filename
if not self.filename:
self.filename = "Unnamed-{0}.txt".format(
TextEdit.NextId)
TextEdit.NextId += 1
self.document().setModified(False)
self.setWindowTitle(QFileInfo(self.filename).fileName())
def
closeEvent(self, event):
if (self.document().isModified() and
QMessageBox.question(self,
"Text Editor - Unsaved Changes",
"Save unsaved changes in {0}?".format(self.filename),
QMessageBox.Yes|QMessageBox.No) ==
QMessageBox.Yes):
try:
self.save()
except EnvironmentError as e: