QML/D文本编辑器和基本注意事项

QML/D text editor and basic considerations

本文关键字:注意事项 编辑器 文本编辑 文本 QML      更新时间:2023-10-16

我将编写一个文本/代码编辑器(带有QML的GUI,其余部分用D*表示)。但我有几个问题:

  • 我用QML和C++编写GUI代码,然后用D-Backend连接它以进行格式化等。连接不同语言的最佳方式是什么?管道、套接字还是在D中使用C++库的能力?

  • IMHO富文本用于格式化文本(在大多数情况下)。如何以一种简单的方式编辑这个"标记"??格式化后的代码是否像背景图像,而用户编辑的是不透明的非格式化文本?

  • 有常用的技术吗?

*因为QML很酷,平台独立,速度快。另一方面,D功能强大且易于使用。

正如您可能知道的,D有QtD、Qt绑定。现在还没有准备好生产,但可能还有一天。

另一种选择是通过C包装器连接C++和D。这是C++和D.之间最常用的交互方式

extern(C++)接口是Windows上DigitalMars C++编译器特有的,并且非常有限,所以这可能对解决您的问题没有帮助。

此外,您可能还想看看SWIG。它是一个自动生成粘合代码的工具,用于与C++进行其他语言的交互。支持D.

如果性能不是问题,则使用D代码的通信可以通过套接字或管道进行。

QML不适用于WebApp。它是QtQuick标记语言。Qt用户界面的"新"方式。在Qt5中,QWidget可能会被弃用,取而代之的是QML。

我试着做同样的事情。但我担心qml还没有准备好做这样的事情。目前可用的大多数元素都足以绘制图像、矩形、列表视图、单行文本输入和进行转换。

我试图通过使用python和pygments进行着色来实现这一点,速度太慢了,使用html3.2样式进行着色不是正确的方法。但这是在qml textedit中设置文本样式的唯一方法;(

QtQuick 2.0应该带来更好的文本控制。