问题标签 [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 投票
0 回答
79 浏览

qt - 来自 QKeyEvent 的文本输入不适用于 QTextDocument 中的俄语字母

我对文本输入和 Qt 有一个奇怪的问题。我有一个小部件,它接受按键事件,提取文本并将文本附加到字符串变量,然后在绘制事件中创建一个 QTextDocument 并绘制文本,到目前为止一切都很好,适用于拉丁字母。但是当一些用户尝试输入非拉丁字母(如俄语)时,一些字母仍然是拉丁字母,而另一些则完全丢失。

例如,输入以下文本:“Не работает на русском языке”会导致: 在此处输入图像描述

我从 QKeyEvent https://doc.qt.io/qt-5/qkeyevent.html#text获取输入的字母

知道是什么导致了这种行为以及如何解决它吗?

0 投票
1 回答
312 浏览

c++ - QTextDocument中文本前的边框

我想在 QTextDocument 中的文本周围有一个唯一的左边框
我认为为此所需的 css 将是

但是可以说我有这个qt代码

现在如果输入 html 我得到了这个输出

图像

但正确和必需的输出应该是 - 在此处输入图像描述

我想要上面的输出,有什么我遗漏的吗?

0 投票
1 回答
111 浏览

c++ - 文本文档中只有左边框

我试图在 QTextDocument 中仅绘制左边框。由于 afaik QTextFrame 不支持选择性边框,因此我尝试为文本框架分配纹理画笔。类似于以下内容 -

但是即使背景设置为透明,这也会打印黑色背景(我需要一个只有左红色边框的透明背景)。
我不知道出了什么问题。此外,还有其他方法可以让 QTextFrame 只有左边框吗?
在此处输入图像描述

0 投票
1 回答
410 浏览

qt - 从片段组装 QTextDocument

我想将QTextDocument多个QTextDocumentFragments 中的 a 放在一起,用 . 表示的水平规则分隔<HR>。像这样的东西(作为 ASCII 模型):

我这样做的尝试(使用insertText()而不是insertFragment()现在,以尝试使基本方案正常工作,但同样的事情发生在insertFragment())看起来像这样:

这样做的结果真的很奇怪。这是一个屏幕截图:

在此处输入图像描述

如您所见,我请求了两个<HR>标签,但我得到了五个水平规则!QTextDocument 的 HTML 也很奇怪(我添加了几个换行符以使其更具可读性):

<HR>HTML 中根本没有我的标签的迹象。使用稍微不同的策略——insertBlock()只在<HR>插入之前调用,或者只在它们之后调用,或者根本不调用——我得到了这个主题的变化;有时bar并且baz在 HTML 输出中不可见,但大量的<HR>标签却是。例如,如果我将插入代码更改为:

然后我得到一个结果,在我的应用程序的可见渲染中有四个水平规则,并且有这个 HTML 输出:

请注意barbaz在 HTML 输出中不可见,尽管它们在应用程序中呈现可见。

但是,在我发现的代码中,我没有得到我想要的东西。看起来我正在QTextDocument进入某种内部不一致或混乱的状态。那么:这样做的正确方法是什么?

这是 macOS 10.14.6 上的 Qt 5.9.8。

0 投票
1 回答
554 浏览

qt - QTextTable中的交替行背景

我正在尝试使用 创建可打印文档QTextDocument,其中还包括一个表格,我正在使用QTextCursor::insertTable. 但是我需要为表格行使用不同的背景颜色。该表旨在包含一个月的所有日子,周末应该有灰色背景,而工作日应该没有背景。

我试过这段代码:

现在的问题是table->setFormat改变了整个表格的格式,我似乎找不到任何可以让我设置rowcell格式的函数。单元格有格式化选项,但这些选项是针对文本格式的,因此不会为单元格背景着色。

我也尝试过使用QTextDocument::insertHTML和处理 HTML 表格,但是 Qt 无法正确呈现我将用于设置边框样式等的 CSS。

如何在 中实现交替行背景颜色QTextTable

0 投票
1 回答
426 浏览

qt - 如何将 QTextDocument 作为小部件?

我需要构建一个基于QTextDocument.

我的小部件.h

我的小部件.cpp

我不能addWidget因为QTextDocument是一个对象。如何构建我的小部件?

0 投票
1 回答
126 浏览

c++ - Qt 在写入 QTextTable 时检测断线

我正在使用 QTextTable 和 QTextTableFormat 创建 PDF 文件并将 HTML 代码插入表格单元格。

"<span style=\"font-weight: bold; font-size: %1px\">%2</span>"

我想缩小我的表格标题内容,使其适合 2 行。我使用 QFontMetrics 来计算我想要显示的字符串的宽度,然后开始减小字体大小直到它适合。我允许的最小字体大小是 8 像素,如果文本更宽,我会用 (.. .)。

问题:我计算单元格的最大宽度,假设为 50,因此,标题的 2 行宽度将为 100。我将文本缩小到 90 像素,如果文本像“iii”,它仍然不适合aaaaaaaaa”,因为第二个单词比第一个单词长很多。第一个单词将占据整个第一行,即使它只有大约 20 像素宽,第二个单词将分成两行,导致 3 行。

我正在寻找的是一种检测或计算给定QFontQString插入QTextDocument使用的方法QTextTableFormat是否会导致多少行

0 投票
1 回答
139 浏览

python - 如何重新实现 QTextDocument createObject?

如何重新实现QTextDocument.createObject

QTextFrame这种方法在制作、、或其他QTextList方面起着作用。QTextTableQTextObject

根据woboq,我认为我的重新实现是相同的。

但是内核停止了。

为什么?我的代码缺少什么?

0 投票
1 回答
520 浏览

python - 如何使 QTextTable 覆盖整个文档宽度

我正在尝试使 QTextDocument 中的 QTextTable 具有文档的 100% 或全宽。但是 QTextTableFormat 类中没有方法可以将 QTextTable 格式化为 100% 的宽度。我们可以调整行和列的大小,但不能调整整个表格。

有什么方法可以实现,如果你知道如何,请分享。谢谢

0 投票
1 回答
89 浏览

python - 在 QTextDocument 中单击链接时生成自定义事件

当我们单击 QTextDocument 中添加到 QTextEdit 中的链接时,有没有一种方法可以生成自定义事件。我目前能够使用 QTextCursor 类的 insertHtml() 函数创建链接,但该链接不可点击。

如果您知道如何在单击 QTextDocument 中的链接时生成自定义事件,请分享。谢谢