问题标签 [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.
c++ - QTextEdit 中的自定义文本(代码)区域
我有兴趣创建一个行为类似于代码区域的文本对象类型(继承QTextObjectInterface ):
- 独特的背景
- 边界
- 固定宽度字体
- 可编辑的内容
- 实例需要可识别代码,以便可以提取其中的内容(将代码与周围内容分开)
- 保存/加载(来自常规 html 文件)
- 语法高亮将是一个加号,但并不是真正需要的
文档的其他区域需要以通常的方式运行(字体属性可编辑、颜色可编辑等)。
Qt 提供了一个使用QTextEdit实现自定义文本对象的示例。这看起来很难,因为新的文本对象不能利用 QTextEdit / QTextDocument中的现有基础设施。
可以将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)
qt - Qt (PySide) 多行 QSyntaxHighlighter
我需要一个QTextEdit
能满足我的QSyntaxHilighter
多行块的!我已经将搜索范围缩小到了,QAbstractTextDocumentLayout
但我无法确定它。该文档指出:
文本块将文本块或文本段落封装在
[...].QTextDocument
.
无论如何,我找不到任何要设置或覆盖的东西,因此我可以获得所需的行为。有人可以指出我正确的方向吗?我从耳朵里渗出我的大脑!
谢谢。
qt - 带分页符的 QTextEdit
我需要打破页面而不是在 QTextEdit 中滚动富文本内容。
我试图用 QTextCursor 和 QFontmetrics 做到这一点,但准确性不够好。
有人可以帮助我吗?
提前致谢 !!!!
ķ
qt - 在 QTextEdit 中绘画而不影响文本
我正在尝试在 a 中绘制一些线条,QTextEdit
但是当paintEvent
它被称为清除整个QTextEdit
文本时,线条被绘制,无法进一步输入文本。如果我滚动,绘制的线条会非常奇怪,以某种方式在水平或垂直方向上相乘。我想在不QTextEdit
影响其文本的情况下进行绘制,并且绘制的内容在滚动时正常运行,以保持其坐标。
这是代码:
c++ - 如何使用所有格式将一个 QTextDocument 部分复制到另一个
我需要制作一个非常大的 QTextDocument 的预览版副本(在富文本模式下)。所以,我需要它的clone()
功能,但能够指定限制。即clone (int maxChars)
。正如我从clone()
源代码中了解的那样,它只是将一个文档作为单个 QTextDocumentFragment 复制到另一个文档。所以,我不能以我需要的方式修改这个过程。
任何想法如何实现这一点?
qt - Qt 忽略 QTextDocument 中的 CSS
这是我的代码的一小段,我不知道为什么,但 Qt 忽略了 css。
我正在使用 Qt 4.8。
python - 如何访问 QTextDocument 页面
我正在尝试构建一个以分页方式显示富文本文档的应用程序 - 或多或少像 MS Word 那样。现在,我希望一次只显示一页。
从这个问题中,我了解到我需要用QTextDocument来表示文档。虽然问题的作者更多地关注视图表示,但我想了解以分页方式访问文档数据。我可以看到该类具有诸如setPageSize()
和之类的方法pageCount()
。呼叫setPageSize()
似乎pageCount()
相应更新。
问题是我不知道如何访问所选页面的内容以将其显示在 QtextEdit 中。
(我通过 PySide 库从 Python 访问 Qt)
python - 从 QTextDocument 中删除块
我需要从 QTextDocument 中删除一些段落。我已经尝试过此主题的代码:Remove a line/block from QTextEdit,但 QTextDocument.drawContents 输出空行代替已删除的块。
那么,如何彻底清除阻塞呢?
qt - 克隆 QTextDocument 子类
我有一个覆盖QTextDocument的子类。QTextDocument::loadResource(int type, const QUrl &name)
我想克隆它。
想法?
qt - QTextBrowser - 如何从鼠标点击位置识别图像
我正在使用 aQTextBrowser
来显示包含许多图像的富文本,每个图像都使用 HTML<img>
标记指定并使用QTextDocument::addResource()
.
我想做的是,在上下文菜单处理程序中(即鼠标单击位置可用),识别单击结束的图像。可以判断点击是否在图像上,因为cursorForPosition(event->pos()).block().text()
返回一个以 Unicode 0xFFFC 开头的字符串。不幸的是,视图中的每个图像都返回相同的字符串。
可以获取所有使用的格式QTextDocument::allFormats()
,识别其中哪些是图像格式,并获取它们的图像资源名称。不幸的是,似乎没有办法获得它们的实际显示位置或边界矩形。