<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>文本编辑器 on Zirnc's Blog</title><link>https://blog.chungzh.cn/blog/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8/</link><description>Recent content in 文本编辑器 on Zirnc's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sat, 16 May 2020 10:45:00 +0000</lastBuildDate><atom:link href="https://blog.chungzh.cn/blog/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>Notepanda 开发小结</title><link>https://blog.chungzh.cn/oi-history/notepanda/</link><pubDate>Sat, 16 May 2020 10:45:00 +0000</pubDate><guid>https://blog.chungzh.cn/oi-history/notepanda/</guid><description>前言 最近开始学习 Qt，然后就挖坑了一个小玩具 Notepanda，顺便看看能不能替代诸如 notepad、gedit 之类的软件。顺便锻炼一下自己。
GitHub repo
Feature 基本的文本编辑操作（没想到吧这也是 feature 了哈哈哈哈哈哈） 行号显示 语法高亮 从命令行启动。（如 notepanda 或者 notepanda CMakeLists.txt） 除此之外还实现了自定义字体、字号、Qt 主题和 Status Bar 等一些小功能。
以后的目标是实现多标签页，并对 Markdown 做一点优化（比如预览），如果有可能还会加进去一个 terminal。计划在 GitHub Projects。
目前还是很弱的一个东西，不过等查找、替换等 feature 实现之后，基本上可以替代 Windows 的 notepad 了。
Screenshots 实现 这部分大概讲讲思路吧。
布局 编辑控件 使用了 Qt 提供的 QPlainTextEdit 类，适合纯文本编辑。刚开始还用的是 QTextEdit，想想自己真是傻了，又不是要编辑富文本哈哈哈。
不过 QPlainTextEdit 似乎有点点慢，我也没能力造轮子，于是就将就着用吧。
语法高亮 刚开始想实现的时候看见了 Qt 官方的 Syntax Highlighter Example，很棒对吧。但是我可不想花精力去写一堆语言的规则呢！
然后就找到了 KDE Framework 里的 KSyntaxHighlighting。KDE Framework 是真的烦人，刚开始怎么也 build 不出来。等到了 GitHub Actions 上，整整用了四天时间才搞定，还是在某 Packman 的帮助下才完成的。。。当时看到绿绿的 Actions，我差点没开心得疯掉。。</description></item></channel></rss>