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 ...
随机推荐
- react中的hoc和修饰器@connect结合使用
在学习react-redux的时候,看到了修饰器这个新的属性,这个是es7的提案属性,很方便.于是我用@connect代替了connect(使用的时候需要配置,这里不赘述),省去了很多不必要的代码,但 ...
- JSP基本用法(一)运行机制和语法
一.概述 JSP是一种建立在Servlet规范功能上的动态网页技术,在网页文件中嵌入Java代码和JSP标记用于产生动态内容. 本文简单介绍JSP的运行机制和JSP的语法. 二.JSP的运行机制 JS ...
- 在MyEclipse(2015)中上传项目到github的步骤(很详细)
(图文)在MyEclipse(2015)中上传项目到github的步骤(很详细) git|smartGit使用详解 SmartGit使用教程
- Tomcat的目录结构和配置文件详解
本文转载: https://www.zybuluo.com/1234567890/note/515235 参考帖子: Tomcat(一):基础配置详解 Tomcat服务器中配置多个域名,访问不同的we ...
- Ubuntu12.04 15.04禁止移动介质自动播放
网上有有很多关于Ubuntu10.04关闭移动介质自动播放的方法,包括在文件管理器里面设置或者使用gconf-editor,但是从12.04开始这两种方法都不再好用了,关于移动介质的处理方法被移到了S ...
- Intellij 部署项目java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
报错信息: org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener ...
- 【WEB前端开发最佳实践系列】高可读的HTML
一.HTML语义化 HTML5中增加了很多标签都是基于此类原则设计的(article nav header footer).页面标签语义化的优点是使得搜索引擎以及第三方抓包工具等更容易读懂页面 ...
- GDI+ 和GDI
GDI:Graphics Device Interface,即图形设备接口,是Windows API的一个重要组成部分.它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具 ...
- 告知你不为人知的UDP-连接性和负载均衡
版权声明:本文由黄日成原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/812444001486438028 来源:腾云阁 h ...
- 九度OJ小结
1. 高精度问题 可参考题目 题目1137:浮点数加法 http://ac.jobdu.com/problem.php?pid=1137 对于高精度问题可以考虑使用结构体.上述为浮点数加法,因此该 ...