问题标签 [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 回答
1499 浏览

css - QTextDocument 中的自定义字体

我正在尝试从中生成 PDF 文件QTextDocument,它工作得很好。当我只想为特定<p></p>对象使用自定义字体时,问题就出现了。我尝试使用标准方法QFontDatabase::addApplicationFont()成功地将字体加载到应用程序中,但由于某种原因,它写入了所有QString添加到此字体中的基础变量,messageBody而不是由 指定的QTextFocument.setDefaultFont(),甚至是手动的 via style={font-family:}

我做错了,还是在这里忽略了某些东西,或者这是某种错误?

主文件


输出 PDF 如下所示:

在此处输入图像描述

我无法理解为什么/如何将基本QString(messageBody)与连接到它的那些(serialNumber)区分开来?


编辑::尝试实施下面建议的 style.css 解决方案后输出没有变化

主文件

样式.css

0 投票
1 回答
558 浏览

qt - Qt:如何使用自定义属性保存 QTextEdit 内容

我有一个文本编辑器(QTextEdit)。我的编辑器中的某些单词包含附加信息(即,该单词在波形文件中的两个对应整数位置)。它们作为 QTextCharFormat 对象的自定义属性存储在 Python 对象中(我使用如下代码附加它们self.editor.textCursor().setCharFormat(QTextCharFormat().setProperty(MyPropertyID, myWordAttachment):)

不幸的是,如果我将文档保存为 html,那么所有这些额外的格式都会丢失。

所以,我想执行最简单的任务:用所有格式保存我的文档,包括 myWordAttachment(并从磁盘加载它)。

Qt5没有准备好东西,我必须自己编写所有文档的序列化代码,我是对的吗?(我仍然希望完成这项工作的简单功能在哪里)

0 投票
1 回答
849 浏览

c++ - QTextDocument:获取特定页面的内容

给定QTextDocument具有特定宽度和高度的 a ,有没有办法在给定页码的情况下获取给定页面的内容(如果页面上有图像,则为纯文本 + 图像 URL)?

这是我想要实现的示例:

这应该打印:

通常,p 标签中的文本可以跨越多个页面,并且图像保证最多跨越一页,以防万一。

0 投票
2 回答
1003 浏览

python - QTextBlock 或 QTextFrame 迭代器如何在 PyQt 中工作

使用 QTextDocument 时,Qt 提供迭代器(例如 QTextBlock.iterator)来移动内容。这里的文档显示了 C++ 代码,但显然++操作符不起作用,而且 PyQt 版本似乎没有任何类似next()函数的东西。

那么如何让迭代器迭代呢?

QTextFrame.begin (返回迭代器)的文档有一个到“STL-style-Iterators”的链接断开,但我找不到这些在 Python 中实现的任何细节。

0 投票
1 回答
237 浏览

c++ - 停止 QTextCursor::insertText() 修改 QTextDocument 滚动条范围

我有一个QTextEdit包含 a 的QTextDocument,正在使用QTextCursor界面以编程方式对其进行编辑。正在使用 编辑文档QTextCursor::insertText()

QTextDocument我以块的形式加载正在编辑的文本文件,因此即使文档是 100,000 行,初始大小也可能只有 20 行。但是,我希望QTextEdit滚动条反映文档的完整大小,而不仅仅是当前显示的 20 行文档。

QTextEdit 的滚动条范围设置QScrollBar::setMaximum()为在文件初始打开时将滚动条调整为适当的大小,但在QTextCursor::insertText()调用时QScrollBar会重新计算 ' 范围。

我已经尝试QScrollBar::setMaximum()在每个QTextCursor::insertText()事件之后调用,但这只会让整个 UI 变得生涩和草率。

有什么办法可以保持修改QScrollBar时的范围QTextDocument

0 投票
1 回答
159 浏览

python-3.x - Python Adding Pictures and headers to QPrintWidget

How can I add a header and a picture to my QPrintWidget /Printout ?

I found this really nice looking layouted outputfile. I would love to make my file look somthing like that. I tried to find a tutorial explaining how to do the 'layouting' of a file, but could not find any.

I would be really glad about some suggestions/help.

So far this is mycode, where the table is beeing drawn from the QTableWidget:

enter image description here

0 投票
1 回答
1008 浏览

c++ - 如何使用 QTextDocumentFragment 在 QTextEdit 中设置图像和文本的大小

我之前的帖子之后,我正在使用QTextEdit. 它的工作方式是每次用户与用户界面交互时,操作都会记录在QTextEdit如下所示的命令日志中。我成功地将图像与每个操作相关联(例如,按下按钮、选中框等),但是正如您在下面的打印屏幕中看到的那样,图像没有调整大小,并且每次用户执行某项操作时,图像都是放在另一个旁边:

怎么了:

错误的

预期:

正确的

下面的代码片段:

主窗口.h

主窗口.cpp

我发现这个有用的资源有助于如何处理里面的图像QTextEdit。但是,我没有找到任何可以清楚地解释如何调整QTextDocumentFragment内部 aQTextEdit及其相关文本的内容,如下所示:

文本

如何设置内部QTextEdit使用的图像和文本的大小QTextDocumentFragment

任何可以提供任何见解的人都会非常有帮助。

0 投票
1 回答
384 浏览

c++ - 通过 QStyledItemDelegate 以不同颜色显示 QTableWidgetItem 的文本

我想以QTableWidgetItem不同的颜色显示 a 的部分文本(其中一部分应该显示为红色)。

我发现使用 a QStyledItemDelegate,重新实现paint函数并显示QTextDocument使用项目文本并添加 HTML 的 a 。

这将为文本启用 HTML:

但是,与“正常”显示相比,结果有一些像素偏移(很可能以一致的方式修复),但我想知道是否有更简单的方法。我根本不需要 HTML,我只想更改部分文本的颜色。

那么是否可以绘制项目的文本(逐个字母)并为每个字母设置颜色而无需使用QTextDocument?

0 投票
1 回答
83 浏览

pyqt5 - 标记 QTextDocument 的特定部分

我必须编辑已在语义上标记的文档。

假设我有一个 HTML 文档,其中部分或所有段落(或跨度)已被标记为特定的类名,例如:<p class="bio"><span class="name">John</span><span class="surname">Doe</span>is a <span class="job">carpenter</span> living in <span class="place">York</span>.</p><p class="story">He was working at his bench when...</p>

我想使用 QTextEdit 小部件来编辑此类文本(如果可能)。

附加要求是:

  • 每个都class应该有特定的图形渲染(这应该很容易使用 CSS)。
  • 编辑特定<span>应该保留class(即:如果我编辑“John”->“Jonathan”它应该仍然有class="name")。
  • 我应该能够应用于class特定的文本片段(即:选择一些文本,打开上下文菜单并选择可能的classes 之一)。
  • 从选择中删除标记。
  • 序列化已编辑的文本(即:遍历已编辑的文本,识别class更改并能够生成我想要的任何标记)。
  • Note classes 可以相互包含(但不能部分重叠);这意味着某些代码有两个(或更多)classes。

这可以通过标准方式实现吗?

据我所见,QTextDocument 和相关类(例如:QTextFrame、QTextFormat 等)面向视觉表示(字体样式、颜色等),而我需要一些可能会或可能不会反映在视觉变化中的“逻辑”标记. 我的意思是:文本可以全部使用相同的字体/颜色/背景,但是将光标移到它上面我应该能够列出class在该特定位置(如果有的话)中所有活动的 es。

如果相关的话,我正在使用 PyQt5 进行编码。

我似乎看到实现这一目标的唯一(相当丑陋!)方法是使用QTextCharFormat'tooltip属性来存储每个QTextFragment. 有更好的选择吗?

0 投票
1 回答
425 浏览

qt - 在 qtextdocument 表格边框没有渲染,为什么?

我正在使用 Qtextdocument 生成报告,我已经以编程方式准备了一个表格字符串作为 html 字符串,但是当我渲染它时,没有显示边框(图 2)

在浏览器中我得到(图1) 想

但在我的 Qt App 中,我得到了(图 2) 得到

这是字符串示例: