python2.7+pyqt4实现记事本基本功能
记事本程序:
# 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实现记事本基本功能的更多相关文章
- PyQt4 模拟记事本基本功能(保存,打开文件)
完成功能: 1. 默认[保存]按钮enable 2. 修改文本的内容后,[enable] 3. 解决字符乱码问题:utf-8 4. 提示:如果修改了文件没有保存的时候,又尝试打开新的文件,给出相关的提 ...
- python2.7+pyqt4 +eric4安装配置
eric4安装与汉化一直没找到合适python的IDE工具,直到遇到了eric4这款开源软件.然而在使用过程中发现输出的中文字符竟然是乱码,修修改改配置总算正常显示了,何不干脆把软件界面也汉化下. 一 ...
- windows7系统下配置开发环境 python2.7+pyqt4+pycharm
python2.7 链接:https://pan.baidu.com/s/1lPI9AF9GCaakLXsMZLd5mQ 提取码:5xt6 pip 链接:https://pan.baidu.com/s ...
- winform记事本(基本功能)
本题主要考察各种控件的应用 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- python2.7+PyQt4+eric6 界面开发环境配置
1.安装环境: python2.7 PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe eric6-18.12.zip 2.安装步骤: 1.安装python2.7的过程略 2 ...
- C#实现记事本查找功能
private void button1_Click(object sender, EventArgs e) { if (!(String.IsNullOrEmpty(this.textBox1.Te ...
- JAVA 运用流编程实现简单的"记事本"功能
一.概要 1.功能介绍 2.实现的思路及步骤代码 3.完整代码 二.功能 运用IO流和Swing实现简单的记事本功能(打开.保存.退出) 三.思路及实现步骤 1.在构造函数中画出操作界面 //创建jt ...
- 第十四周课程总结&记事本功能的简单实现。
(1)课程总结: 这周简单学习了下JDBC的内容: JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据. 执行流程: (1)连接数据源,如:数据库. (2)为数据库传递查 ...
- py2.7+pyqt4开发端口检测工具
使用工具:python2.7,pyqt4,pyinstaller,pywin32 先贴代码 import sys from PyQt4 import QtGui,QtCore import threa ...
随机推荐
- Splash js_enabled 属性
js_enabled属性是 Splash 的 JavaScript 执行开关,可以将其配置为 true 或 false 来控制是否执行 JavaScript 代码,默认为 true .例如,这里禁止执 ...
- using 释放内存的写法
using (FileStream fileStream = File.Open(fileName,FileMode.Open,FileAccess.Read,FileShare.ReadWrite) ...
- 【摘】50个jQuery代码段帮助你成为一个更好的JavaScript开发者
今 天的帖子会给你们展示50个jQuery代码片段,这些代码能够给你的JavaScript项目提供帮助.其中的一些代码段是从jQuery1.4.2才 开始支持的做法,另一些则是真正有用的函数或方法,他 ...
- 服务器搭建--Linux安装erlang
1.安装依赖环境: 1)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了 yum -y install make gcc gcc-c++ kernel-devel m4 ncur ...
- php 原生文件下载
1.整个网页的html界面源码下载: xiazai.php <html> <head> <meta charset ="utf-8"> < ...
- numpy基本方法
在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...
- springboot---->springboot中的校验器(一)
这里面我们简单的学习一下springboot中关于数据格式化的使用.冬天花败,春暖花开,有人离去,有人归来. springboot中的校验器 我们的测试环境是springboot,对请求的person ...
- swagger环境搭建
下面所用工具下载 http://editor.swagger.io/#/ demo 一.安装 swagger editor 说明:安装swagger前需要安装node工具 工具安装 ...
- C# 输出带颜色文字,用于实时日志输出
private void button1_Click(object sender, EventArgs e) { LogMessage("绿色"); 4 LogError(&quo ...
- 题目1161:Repeater(规律输出图形)
题目1161:Repeater 题目链接:http://ac.jobdu.com/problem.php?pid=1161 具体分析:https://github.com/zpfbuaa/JobduI ...