Qt / C ++中的简单文本编辑器

时间:2011-05-17 20:49:53

标签: c++ qt

我想写一个简单的文本编辑器。我希望它是基于GUI的,并使用Qt编写。

Qt提供课程QTextEdit,这是一个功能齐全的文字编辑器(它支持ctrl+cxz,文字突出显示和移动光标左右 - 自上而下)。我想写类似的东西,但我想从头开始实现所有这些功能。

所以我的要求是:

  • 一个简单的窗口。
  • 能够从用户读取文本,并将准备好的文件输出到屏幕。
  • 用户必须能够访问文本进行编辑。

我已经从官方Qt网站查看了qtextedit.cpp的源代码,以了解这是如何实现的。不幸的是,我没有足够的经验来理解它(有近4000行代码和许多宏)。

我如何在项目中取得一些进展?

3 个答案:

答案 0 :(得分:2)

我认为你最好看一下这里的一些代码:http://kde-apps.org/index.php?xcontentmode=241

看看代码,尝试编写自己的代码,并意识到Qt需要人们很好地了解C ++。至少,你需要理解类和指针。如果感觉易于管理,那么最好的办法就是尝试:你会遇到一些问题,然后你就可以看到其他人是如何解决这个问题的。

我认为我能给出的最具体的建议是为所有看起来可以合理测试的东西编写测试,这可以节省一些调试时间。除此之外,没有示例代码和更具体的问题,还有更多的话要说。

答案 1 :(得分:1)

这是主要的工作。如果你想要一个像样的编辑器,你或多或少地被迫从Scintilla edit control开始,因为它只是最好的(它带有较小的通用公共许可证)。但是你必须在它上面实现一个编辑器。你真的不想这样做(相信我),所以你必须使用现有的开源编辑器。其中最好的可能是Notepad++,它有超过4000行代码。它附带一个通用公共许可证,它与我目前正在处理的项目不兼容,所以我最终使用了SciTE editor。我已经为它实现了一个接口,它允许我将它嵌入到Qt应用程序中,它就像一个魅力。在接下来的两三个月里,我希望SciTE社区接受这个界面,并将其纳入正式版本。同时,如果您不受许可要求的约束,您可能需要查看QScintilla

答案 2 :(得分:0)

在Qt Demo应用程序中,有一个MDI文本编辑器可以教很多(http://doc.qt.nokia.com/latest/mainwindows-mdi.html)。