首页 > 编程语言 > 详细

python2.7+pyqt4实现记事本基本功能

时间:2017-01-26 11:29:57      阅读:357      评论:0      收藏:0      [点我收藏+]

记事本程序:

# coding:utf-8
import sys
from PyQt4.QtGui import QMainWindow
from PyQt4.QtGui import QApplication, QAction, QIcon, QFileDialog, QTextEdit
from PyQt4.QtCore import SIGNAL, SLOT
import codecs
import os.path
import sys
reload(sys)
sys.setdefaultencoding("utf-8")


class MyWindow(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)
    
    def create_menu_bar(self):
        menu = self.menuBar()
        self.FileMenu = menu.addMenu(u文件)
        self.EditMenu = menu.addMenu(u编辑)
        self.SearchMenu = menu.addMenu(u搜索)

    def create_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()))

    def add_menu_action(self):
        self.FileMenu.addAction(self.OpenMenu)
        self.FileMenu.addAction(self.SaveMenu)
        self.FileMenu.addAction(self.SaveAsMenu)
        self.FileMenu.addAction(self.ExitMenu)

    def create_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退出)

    def add_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)
       
    def open_file(self):
        self.filename = QFileDialog.getOpenFileName()
        if os.path.isfile(self.filename):
            with codecs.open(self.filename, r,utf-8) as f:
                s = f.read()
                self.maintext.setText(s)

    def save_file(self):
        if filename in dir(self):
            with codecs.open(self.filename, w,utf-8) as f:
                f.write(self.maintext.toPlainText())
        else:
            self.save_as_file()

    def save_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_()

说明:

1. 下面代码可以保证读取文件中文内容不出现乱码

import codecs

with codecs.open(self.filename, ‘w‘,‘utf-8‘) as f

2. 下面代码可以保证中文内容写入不出现乱码

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

3. 下面判断保证新文件保存时候采取另存为的方式

if ‘filename‘ in dir(self):

python2.7+pyqt4实现记事本基本功能

原文:http://www.cnblogs.com/lypy/p/6351387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!