我正在教授算法的设计和分析,我希望我的学生通过实现文本布局对齐来练习动态编程算法。我已经为文本编辑器实现了一个简单的Qt5 GUI,该文本编辑器可以利用我的学生的代码,因此他们可以不费吹灰之力就能拥有功能齐全的东西,但是我找不到自定义QPlainTextEdit小部件如何布置文本的方法。
我读了很多有关QTextDocument
,QPlainTextDocumentLayout
,QTextLayout
和相关类的知识,但我只是不知道在哪里进行更改是正确的。我应该将其中之一归类吗?还是QPlainTextEdit
本身?如果可以,该将自定义对象发送到哪里?
我希望我的学生提供一个有效的光标位置列表,编辑器应该在这些位置上以视觉方式将这些行换行,所以我想要的是一种“给”小部件这些位置而无需对换行符进行硬编码的方式。
修改:
另一种表达方式:如何在QTextLayout
中注入自定义QPlainTextEdit
?还是在QTextEdit
中,如果世界上没有希望了...?
PS :
[*]我已经尝试扩展QPlainTextDocumentLayout
,这是有效完成此工作的类,但是当我发现布局是在其PIMPL中完成并完全依赖于它时,我就放弃了,因此似乎不是一个选择。