国产操作系统生态圈推动信息安全与技术自主发展的新机遇
709
2022-08-27
【github notepad】QT 自动备份,(正则表达式)搜索替换
本文记录使用qt制作一个记事本的一些问题及其解决方案。
基本的记事本编辑操作
相关类:QTextEdit
正则表达式替换
相关类:QRegExp 注:在正则替换时,使用文件流readLine得到的字符串才能用于正则匹配,QTextStream::readAll()和QTextEdit::toPlainText()的得到的字符串消除了^ $。.*A$的正则表达式找不到以A结尾的行。 例如:
#include [edemon@CentOS workspace]$ cat readsdafasd12cdsaf12dasgfdagsfdh12sadfasdgasg[edemon@CentOS workspace]$ cat read1000000000000000 普通替换 相关的类和方法 QTextEdit::find(); QTextEdit::textCursor(); QTextEdit::insertText(); QTextEdit::movePosition(QTextCursor::Start); 正则搜索高亮结果显示 继承于 QSyntaxHighlighter的自定义类 主要方法: void MyHighlighter::highlightBlock(const QString &text){ QTextCharFormat myClassFormat; QColor color(0,0,100,100); myClassFormat.setBackground(color); QString pattern = "regular"; QRegExp expression(pattern); int index = text.indexOf(expression); while (index >= 0) { int length = expression.matchedLength(); setFormat(index, length, myClassFormat); index = text.indexOf(expression, index + length); }} 普通搜索 QString::indexOf(QString) void simLighter::highlightBlock(const QString &text){ QTextCharFormat myClassFormat; QColor color(0,0,100,100); myClassFormat.setBackground(color); int index = text.indexOf(pattern); while (index >= 0) { int length = pattern.length(); //expression.matchedLength(); setFormat(index, length, myClassFormat); index = text.indexOf(pattern, index + length); }} 当前的文本备份 QTimer设定备份周期。 用QFIle,QTextStream 等类将文本写入磁盘。 多标签 利用QTabWidget类,tab的index是从0开始的。 代码设计Action的快捷键 找按键表New->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N)); // 0x04000000 + 0x4e字符串转换New->setShortcut(QKeySequence(tr("Ctrl+N"))); 文件备份与恢复gif 文本查找gif 正则替换gif 源码地址:https://github.com/theArcticOcean/notepad
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~