#coding:utf-8
importsysfrom PyQt4.QtGui importQMainWindowfrom PyQt4.QtGui importQApplication, QAction, QIcon, QFileDialog, QTextEditfrom PyQt4.QtCore importSIGNAL, SLOTimportcodecsimportos.pathimportsys
reload(sys)
sys.setdefaultencoding("utf-8")classMyWindow(QMainWindow):def __init__(self):
QMainWindow.__init__(self)
self.setWindowTitle("PyQt")
self.resize(300, 200)
self.create_menu_bar()
self.create_menu_action()
self.add_menu_action()
self.create_tool_bar()
self.add_tool_action()
self.maintext=QTextEdit()
self.setCentralWidget(self.maintext)defcreate_menu_bar(self):
menu=self.menuBar()
self.FileMenu= menu.addMenu(u'文件')
self.EditMenu= menu.addMenu(u'编辑')
self.SearchMenu= menu.addMenu(u'搜索')defcreate_menu_action(self):
self.OpenMenu= QAction(QIcon('images/open.png'),u'打开', self)
self.OpenMenu.setShortcut('Ctrl+O')
self.OpenMenu.setStatusTip(u'打开文件')
self.OpenMenu.connect(self.OpenMenu, SIGNAL('triggered()'), self.open_file)
self.SaveMenu= QAction(QIcon('images/save.png'), u'保存', self)
self.SaveMenu.setShortcut('Ctrl+S')
self.SaveMenu.setStatusTip(u'保存文件')
self.connect(self.SaveMenu, SIGNAL('triggered()'), self.save_file)
self.SaveAsMenu= QAction(QIcon('images/saveas.png'), u'另存为', self)
self.SaveAsMenu.setShortcut('Ctrl+Alt+S')
self.SaveAsMenu.setStatusTip(u'文件另存为')
self.connect(self.SaveAsMenu, SIGNAL('triggered()'), self.save_as_file)
self.ExitMenu= QAction(QIcon('images/exit.png'), u'退出', self)
self.ExitMenu.setShortcut('Ctrl+Q')
self.ExitMenu.setStatusTip(u'退出程序')
self.connect(self.ExitMenu, SIGNAL('triggered()'), SLOT('close()'))defadd_menu_action(self):
self.FileMenu.addAction(self.OpenMenu)
self.FileMenu.addAction(self.SaveMenu)
self.FileMenu.addAction(self.SaveAsMenu)
self.FileMenu.addAction(self.ExitMenu)defcreate_tool_bar(self):
self.Open_tool= self.addToolBar(u'打开')
self.Save_tool= self.addToolBar(u'保存')
self.SaveAs_tool= self.addToolBar(u'另存为')
self.Exit_tool= self.addToolBar(u'退出')defadd_tool_action(self):
self.Open_tool.addAction(self.OpenMenu)
self.Save_tool.addAction(self.SaveMenu)
self.SaveAs_tool.addAction(self.SaveAsMenu)
self.Exit_tool.addAction(self.ExitMenu)defopen_file(self):
self.filename=QFileDialog.getOpenFileName()ifos.path.isfile(self.filename):
with codecs.open(self.filename,'r','utf-8') as f:
s=f.read()
self.maintext.setText(s)defsave_file(self):if 'filename' indir(self):with codecs.open(self.filename,'w','utf-8') as f:
f.write(self.maintext.toPlainText())else:
self.save_as_file()defsave_as_file(self):
self.filename=QFileDialog.getSaveFileName()
with codecs.open(self.filename,'w','utf-8') as f:
f.write(self.maintext.toPlainText())
app=QApplication(sys.argv)
mywindow=MyWindow()
mywindow.show()
app.exec_()