问题标签 [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.
qt - 来自 QKeyEvent 的文本输入不适用于 QTextDocument 中的俄语字母
我对文本输入和 Qt 有一个奇怪的问题。我有一个小部件,它接受按键事件,提取文本并将文本附加到字符串变量,然后在绘制事件中创建一个 QTextDocument 并绘制文本,到目前为止一切都很好,适用于拉丁字母。但是当一些用户尝试输入非拉丁字母(如俄语)时,一些字母仍然是拉丁字母,而另一些则完全丢失。
例如,输入以下文本:“Не работает на русском языке”会导致:
我从 QKeyEvent https://doc.qt.io/qt-5/qkeyevent.html#text获取输入的字母
知道是什么导致了这种行为以及如何解决它吗?
qt - 从片段组装 QTextDocument
我想将QTextDocument
多个QTextDocumentFragment
s 中的 a 放在一起,用 . 表示的水平规则分隔<HR>
。像这样的东西(作为 ASCII 模型):
我这样做的尝试(使用insertText()
而不是insertFragment()
现在,以尝试使基本方案正常工作,但同样的事情发生在insertFragment()
)看起来像这样:
这样做的结果真的很奇怪。这是一个屏幕截图:
如您所见,我请求了两个<HR>
标签,但我得到了五个水平规则!QTextDocument 的 HTML 也很奇怪(我添加了几个换行符以使其更具可读性):
<HR>
HTML 中根本没有我的标签的迹象。使用稍微不同的策略——insertBlock()
只在<HR>
插入之前调用,或者只在它们之后调用,或者根本不调用——我得到了这个主题的变化;有时bar
并且baz
在 HTML 输出中不可见,但大量的<HR>
标签却是。例如,如果我将插入代码更改为:
然后我得到一个结果,在我的应用程序的可见渲染中有四个水平规则,并且有这个 HTML 输出:
请注意bar
和baz
在 HTML 输出中不可见,尽管它们在应用程序中呈现可见。
但是,在我发现的代码中,我没有得到我想要的东西。看起来我正在QTextDocument
进入某种内部不一致或混乱的状态。那么:这样做的正确方法是什么?
这是 macOS 10.14.6 上的 Qt 5.9.8。
qt - QTextTable中的交替行背景
我正在尝试使用 创建可打印文档QTextDocument
,其中还包括一个表格,我正在使用QTextCursor::insertTable
. 但是我需要为表格行使用不同的背景颜色。该表旨在包含一个月的所有日子,周末应该有灰色背景,而工作日应该没有背景。
我试过这段代码:
现在的问题是table->setFormat
改变了整个表格的格式,我似乎找不到任何可以让我设置row或cell格式的函数。单元格有格式化选项,但这些选项是针对文本格式的,因此不会为单元格背景着色。
我也尝试过使用QTextDocument::insertHTML
和处理 HTML 表格,但是 Qt 无法正确呈现我将用于设置边框样式等的 CSS。
如何在 中实现交替行背景颜色QTextTable
?
qt - 如何将 QTextDocument 作为小部件?
我需要构建一个基于QTextDocument
.
我的小部件.h
我的小部件.cpp
我不能addWidget
因为QTextDocument
是一个对象。如何构建我的小部件?
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 行。
我正在寻找的是一种检测或计算给定QFont
和QString
插入QTextDocument
使用的方法QTextTableFormat
是否会导致多少行
python - 如何重新实现 QTextDocument createObject?
如何重新实现QTextDocument.createObject
?
QTextFrame
这种方法在制作、、或其他QTextList
方面起着作用。QTextTable
QTextObject
根据woboq,我认为我的重新实现是相同的。
但是内核停止了。
为什么?我的代码缺少什么?
python - 如何使 QTextTable 覆盖整个文档宽度
我正在尝试使 QTextDocument 中的 QTextTable 具有文档的 100% 或全宽。但是 QTextTableFormat 类中没有方法可以将 QTextTable 格式化为 100% 的宽度。我们可以调整行和列的大小,但不能调整整个表格。
有什么方法可以实现,如果你知道如何,请分享。谢谢
python - 在 QTextDocument 中单击链接时生成自定义事件
当我们单击 QTextDocument 中添加到 QTextEdit 中的链接时,有没有一种方法可以生成自定义事件。我目前能够使用 QTextCursor 类的 insertHtml() 函数创建链接,但该链接不可点击。
如果您知道如何在单击 QTextDocument 中的链接时生成自定义事件,请分享。谢谢