问题标签 [qtextdocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2756 浏览

c++ - QTextEdit 中的自定义文本(代码)区域

我有兴趣创建一个行为类似于代码区域的文本对象类型(继承QTextObjectInterface ):

  • 独特的背景
  • 边界
  • 固定宽度字体
  • 可编辑的内容
  • 实例需要可识别代码,以便可以提取其中的内容(将代码与周围内容分开)
  • 保存/加载(来自常规 html 文件)
  • 语法高亮将是一个加号,但并不是真正需要的

文档的其他区域需要以通常的方式运行(字体属性可编辑、颜色可编辑等)。


Qt 提供了一个使用QTextEdit实现自定义文本对象的示例。这看起来很难,因为新的文本对象不能利用 QTextEdit / QTextDocument中的现有基础设施。

QTextObject

可以将QTextDocument的各个部分组合在一起的不同类型对象的基类

所以继承它可能是一种选择,但它在 Qt SDK 包中的源文件和谷歌搜索都没有显示有用的信息。

QTextFrame继承QTextObject因此,如果要找到有关此路径的一些提示,它可能是一个可行的基类。


在一个简单的 HTML 文件中,所有这些(语法高亮除外)都很容易。QTextEdit以 html 作为输入,并且能够导出 html,但在此过程中结构丢失。

顺便说一下, QWebView是只读的。它宣传说:

HTML 文档的一部分可以通过 HTML 元素的 contenteditable 属性进行编辑。


可能还有其他平台可以随时使用,但文本编辑器需要在 Qt Creator 中作为插件使用,因此使用 Qt 框架是有意义的。

底线:如何在QTextEdit小部件中实现代码区域?


后期编辑:

  • 使用来自主干的 Qt sdk(将自身标识为 4.8.4)
  • 来自主干的 Qt Creator (Qt Creator 2.6.81)
0 投票
1 回答
310 浏览

qt - Qt (PySide) 多行 QSyntaxHighlighter

我需要一个QTextEdit能满足我的QSyntaxHilighter 多行块的!我已经将搜索范围缩小到了,QAbstractTextDocumentLayout但我无法确定它。该文档指出:

文本块将文本块或文本段落封装在[...].QTextDocument.

无论如何,我找不到任何要设置或覆盖的东西,因此我可以获得所需的行为。有人可以指出我正确的方向吗?我从耳朵里渗出我的大脑!

谢谢。

0 投票
1 回答
760 浏览

qt - 带分页符的 QTextEdit

我需要打破页面而不是在 QTextEdit 中滚动富文本内容。

我试图用 QTextCursor 和 QFontmetrics 做到这一点,但准确性不够好。

有人可以帮助我吗?

提前致谢 !!!!

ķ

0 投票
1 回答
1197 浏览

qt - 在 QTextEdit 中绘画而不影响文本

我正在尝试在 a 中绘制一些线条,QTextEdit但是当paintEvent它被称为清除整个QTextEdit文本时,线条被绘制,无法进一步输入文本。如果我滚动,绘制的线条会非常奇怪,以某种方式在水平或垂直方向上相乘。我想在不QTextEdit影响其文本的情况下进行绘制,并且绘制的内容在滚动时正常运行,以保持其坐标。

这是代码:

0 投票
2 回答
1408 浏览

c++ - 如何使用所有格式将一个 QTextDocument 部分复制到另一个

我需要制作一个非常大的 QTextDocument 的预览版副本(在富文本模式下)。所以,我需要它的clone()功能,但能够指定限制。即clone (int maxChars)。正如我从clone()源代码中了解的那样,它只是将一个文档作为单个 QTextDocumentFragment 复制到另一个文档。所以,我不能以我需要的方式修改这个过程。

任何想法如何实现这一点?

0 投票
1 回答
5172 浏览

qt - Qt 忽略 QTextDocument 中的 CSS

这是我的代码的一小段,我不知道为什么,但 Qt 忽略了 css。

我正在使用 Qt 4.8。

0 投票
1 回答
1274 浏览

python - 如何访问 QTextDocument 页面

我正在尝试构建一个以分页方式显示富文本文档的应用程序 - 或多或少像 MS Word 那样。现在,我希望一次只显示一页。

这个问题中,我了解到我需要用QTextDocument来表示文档。虽然问题的作者更多地关注视图表示,但我想了解以分页方式访问文档数据。我可以看到该类具有诸如setPageSize()和之类的方法pageCount()。呼叫setPageSize()似乎pageCount()相应更新。

问题是我不知道如何访问所选页面的内容以将其显示在 QtextEdit 中。

(我通过 PySide 库从 Python 访问 Qt)

0 投票
2 回答
1897 浏览

python - 从 QTextDocument 中删除块

我需要从 QTextDocument 中删除一些段落。我已经尝试过此主题的代码:Remove a line/block from QTextEdit,但 QTextDocument.drawContents 输出空行代替已删除的块。

那么,如何彻底清除阻塞呢?

0 投票
1 回答
487 浏览

qt - 克隆 QTextDocument 子类

我有一个覆盖QTextDocument子类QTextDocument::loadResource(int type, const QUrl &name)

我想克隆它。

想法?

0 投票
1 回答
924 浏览

qt - QTextBrowser - 如何从鼠标点击位置识别图像

我正在使用 aQTextBrowser来显示包含许多图像的富文本,每个图像都使用 HTML<img>标记指定并使用QTextDocument::addResource().

我想做的是,在上下文菜单处理程序中(即鼠标单击位置可用),识别单击结束的图像。可以判断点击是否在图像上,因为cursorForPosition(event->pos()).block().text()返回一个以 Unicode 0xFFFC 开头的字符串。不幸的是,视图中的每个图像都返回相同的字符串。

可以获取所有使用的格式QTextDocument::allFormats(),识别其中哪些是图像格式,并获取它们的图像资源名称。不幸的是,似乎没有办法获得它们的实际显示位置或边界矩形。