文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit

0621ddd0ad3ea1de8c065ce68e8c504b.png

QPlainTextEdit简介

QPlainTextEdit小部件是一个用于编辑和显示纯文本控件,QPlainTextEdit控件与QTextEdit控件使用了相同的技术和概念,但是它为纯文本处理提供了优化。QPlainTextEdit是一个支持纯文本的高级查看器/编辑器,可以处理大型文档并对用户输入做出快速响应。

QPlainTextEdit支持文本段落,在默认情况下,一个换行符表示一个段落,文档可以一个或者多个段落组成,且段落中的每个字符都可以有其自己的属性,例如有自己的字体和颜色。

QPlainTextEdit常用作文本显示器或文本编辑器。

QPlaintTextEdit常用方法:

  • setPlainText(): 设置多行文本框的内容;
  • insertPlainText(): 插入普通文本;
  • appendPlainText(): 添加普通文本;
  • appendHtml(): 添加HTML文本内容;
  • setReadOnly(): 设置成只读模式;
  • isReadOnly(): 是否是只读模式;
  • setLineWrapMode():设置换行模式,取值为(QPlainTextEdit.NoWrap:不自动换行(缺省值),QPlainTextEdit.WidgetWidth: 根据文本框的宽度自动换行.);
  • lineWrapMode(): 换行模式

QPlaintTextEdit中的常用信号:

  • textChanged: 文本内容发生改变时触发;
  • selectionChanged:选中内容发生改变时触发;
  • cursorPositionChanged: 光标位置发生改变触发;
  • copyAvailable:复制可用时触发
  • redoAvailable: 重做可用触发
  • undoAvailable: 撤销可用触发

QPlainTextEdit是一个功能强大的文本编辑器控件,有兴趣的童鞋可进一步研究。

QPlainTextEdit类继承关系:

ee854511388dccedad7e0c7d994047fe.png

测试QPlainTextEdit

测试程序实现简单的文本编辑器,可以新建,打开一个文本文件,然后进行编辑并保存。使用Qt Designer生成ui文件. 然后在代码中是有uic直接调用布局文件。创建文件qplaintextedit.py, 代码如下:

import sys,osfrom PyQt5 import QtCore, QtGui, QtWidgets, uicfrom PyQt5.QtWidgets import (QApplication, QWidget, QPlainTextEdit, QToolButton, QStyle, QMessageBox, QFileDialog) class DemoPlainTextEdit(QWidget):    def __init__(self, parent=None):        super(DemoPlainTextEdit, self).__init__(parent)                self.path = None                uic.loadUi(os.path.dirname(__file__) + '/textedit.ui', self)                self.btnNewFile.setIcon(QApplication.style().standardIcon(QStyle.SP_FileIcon))        self.btnNewFile.clicked.connect(self.onFileNew)        self.btnOpenFile.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogOpenButton))        self.btnOpenFile.clicked.connect(self.onFileOpen)        self.btnSaveFile.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogSaveButton))        self.btnSaveFile.clicked.connect(self.onSaveFile)        self.btnSaveFileAs.setIcon(QApplication.style().standardIcon(QStyle.SP_DialogSaveButton))        self.btnSaveFileAs.clicked.connect(self.onSaveFileAs)            def msgCritical(self, strInfo):        dlg = QMessageBox(self)        dlg.setIcon(QMessageBox.Critical)        dlg.setText(strInfo)        dlg.show()        def onFileNew(self):        self.txtEdit.clear()            def onFileOpen(self):        path, _ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt)')                if path:            try:                with open(path, 'rU') as f:                    text = f.read()            except Exception as e:                self.msgCritical(str(e))            else:                self.path = path                self.txtEdit.setPlainText(text)                    def onSaveFile(self):        if self.path is None:            return self.onSaveFileAs()        self._saveToPath(self.path)            def onSaveFileAs(self):        path,_ = QFileDialog.getSaveFileName(self, '保存文件', '', '文本文件 (*.txt)')        if not path:            return        self._saveToPath(path)            def _saveToPath(self, path):        text = self.txtEdit.toPlainText()        try:            with open(path, 'w') as f:                f.write(text)        except Exception as e:            self.msgCritical(str(e))        else:            self.path = path               if __name__ == '__main__':    app = QApplication(sys.argv)    window = DemoPlainTextEdit()    window.show()    sys.exit(app.exec())

运行结果如图:

7d3b43d4584481f90a757fb212d86458.gif

测试QPlainTextEdit

本文知识点

  • QPlainTextEdit的基本功能;
  • 使用uic在代码中导入ui文件;
  • 使用QFileDialog打开文件对话框;
  • 文本文件的读写操作。

喜欢本文内容就收藏,点赞,评论,关注和转发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

朗读评价语言集锦_评语大全之朗诵评语艺术表现力

朗诵评语艺术表现力【篇一:古诗词诵读比赛评价表】诗歌朗诵比赛评分表评分细则总分100分1.普通话25分吐字清晰,普通话标准2.流利程度20分。朗诵熟练,声音洪亮,正确把握诗歌节奏,韵律明显。若能够脱稿&#…

python logging使用_Python实战之logging模块使用详解

用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来…

boat启动器 minecraft_minecraft boat

minecraft boat启动器是一款针对我的世界游戏的启动工具,有了minecraft boat启动器我们就可以在手机上畅玩电脑中的游戏,支持中文,操作起来很方便。让玩家可以尽情地在这个开放世界中冒险和创作,这里为大家展现了一个非常开放的世…

python 数据库接口_Python3笔记050 - 11.1 数据库接口

第11章 使用python操作数据库11.1 数据库接口python3连接mysql需要安装pymysql模块;1、本地安装:pycharm版本是2019.3;python版本是3.7.3;pymysql版本是0.10.0;2、远程安装:虚拟机内安装centos7系统&#x…

使用通用mapper实现条件查询_【微服务】152:Stream流和通用mapper批量查询的使用...

今天是刘小爱自学Java的第152天。感谢你的观看,谢谢你。学习计划安排如下:补充完昨天商品查询中关于分类和品牌的部分,其中牵扯到了两个非常重要的知识点:Stream流的使用,这个学过后基本就没怎么使用过,这次…

python tkinter图片为什么要设置全局变量_为什么这里一定要设置全局变量

下面是程序其中有个变量y如果不开始设置成全局变量,yyk;这里就会提示报错说使用了未赋值的局部变量!前提是我再设置其他(inti,z,k,y;)已经设置后不能使用//题目:输入某年某月某...下面是程序其中有个变量y如果不开始设置成全局变量&#xff0…

java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果

效果如图:大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可。有两个需要关注的点:1.官方事例的数据结构是一个对象里面包含着集合,而不是一个集合对象 2…

python 等值线图_python – matplotlib等值线图:对数刻度的比例色度级

我建议生成一个伪色条如下(见解释说明):import matplotlib.pyplot as pltimport numpy as npfrom matplotlib.colors import LogNormimport matplotlib.gridspec as gridspecdelta 0.025x y np.arange(0, 3.01, delta)X, Y np.meshgrid(x, y)Z1 plt.mlab.bivar…

php链接本地mysql数据库配置文件_php连接 mysql 数据库如何添加一个公共的配置文件...

展开全部php面向对象文件名DB.class.php<?php header("content-type:text/html;charsetutf-8");class DB{public $db_host;//localhostpublic $db_user;//用户名public $db_pwd;//密码public $db_name;//数据库名public $links;//链接名称//构造方法e69da5e887aa…

mfc打开一个.txt文件并进行处理_文件处理方法Python

你好&#xff0c;我是goldsunC让我们一起进步吧&#xff01;1. 文件说明文件是存储在存储器上的数据序列&#xff0c;在计算机中&#xff0c;所有文件都是以二进制的方式进行存储的&#xff0c;而文件的展示形式一般分为两种&#xff1a;文本形式和二进制形式。文本文件由单一特…

navicat mysql 远程_Navicat for mysql 连接远程数据库

错误码1130&#xff1a;更改mysql数据库里的usermysql>use mysql;mysql>select host from user where userroot;mysql>update user set host % where user root;mysql>flush privileges;mysql>select host from user where userroot;错误码2003&#xff1a;1.m…

qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...

前面几篇文章中&#xff0c;给大家介绍了一些excel的基本操作技巧&#xff0c;以及如何高效地浏览表格。相信大家多少都会获得一点收获&#xff0c;希望能够为大家提供一些工作上的帮助。工作中&#xff0c;老板经常会安排我们手动输入一些数据&#xff0c;考虑到我们要不停的手…

如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

直接alter table add index 添加索引&#xff0c;执行一个小时没反应&#xff0c;并且会导致锁表&#xff1b;故放弃该办法&#xff0c;最终解决办法如下&#xff1a;一.打开mysql 命令行客户端这里我们那可以看到导出的数据文件所存放的默认位置 C:\ProgramData\MySQL\MySQL …

qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...

今日绘画主题&#xff1a;冬天的夜晚冬天是美好的&#xff0c;也是很多画家喜欢创作的题材之一&#xff0c;但是&#xff0c;冬天的夜晚却是很难画&#xff0c;今天分步骤图解教大家画冬天的夜晚&#xff0c;快收藏起来临摹吧。>>>【第一步】&#xff1a;先来画线稿&a…

mysql scws_apache+mysql+php+scws+myft_scws编译安装全程记录

1.首先编译安装apache&#xff0c;这里是下载的最新版apache 2.2.22版本[rootb2b soft]#tar zxvf httpd-2.2.22.tar.gz[rootb2b soft]#cd http-2.2.17[rootb2b http-2.2.22]#./configure --prefix/home/apache2.2.22 --enable-so --enable-rewrite --enable-ssl --enable-mods-…

python写前端和js_Python之路【第十二篇】前端之jsdomejQuery

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。1、存在方式functionfunc() {alert("Hello Shuaige")}2、javascrip…

mysql降级导入_mysql 升级和降级

1 官方推荐的两种升级方式&#xff1a;in-place upgradelogical upgrade2 升级之前&#xff1a;备份所有数据库&#xff0c;包括系统库mysql[rootDarren1 ~]# mysqldump -uroot -p147258 -A -B -F --master-data2 --events --single-transaction>/tmp/mysqlall.bak下载5.7.…

python process_Python Process/Thread 概念整理

进程与线程 并发与并行进程与线程首先要理解的是&#xff0c;我们的软件都是运行在操作系统之上&#xff0c;操作系统再控制硬件&#xff0c;比如 处理器、内存、IO设备等。操作系统为了向上层应用程序提供 简单一致 的机制来控制复杂而又大相径庭的低级硬件设备 抽象出 进程 的…

mysql技术内幕sampdb_MySQL技术内幕汇总

MySql技术内幕之MySQL入门(1)检查系统中是否已经安装了MySQLsudo netstat -tap | grep mysql若没有显示已安装结果&#xff0c;则没有安装。否则表示已经安装。sudo apt-get install mysql-server mysql-client安装过程中会让输入密码&#xff0c;记得把密码记住。登录mysql -u…

lrtemplate如何导入pr_PR模板使用套路讲解 视频剪辑教程

​pr模板在使用的时候需要注意的事项以及如何正确操作https://www.zhihu.com/video/1237765482302226432pr模板在使用的时候需要【注意的事项】1、下载的模板必须解压后使用2、下载模板的时候网站上页面都会有介绍模版所支持的版本3、弹出不同版本的提示窗口&#xff0c;点击确…