问题标签 [qtextcursor]

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 回答
168 浏览

qt - 如何将 QTextFrame/QTextBlock 保持在一页上?

有没有办法将 a QTextFrameor的内容保持QTextBlock在同一页面上?

如果当前页面上的内容仍有足够的空间,我不想插入分页符,但如果没有,所有内容应该一起移动到下一页。

我知道有PageBreak_Auto/ PageBreak_AlwaysBefore/ PageBreak_AlwaysAfter,但据我所知,PageBreak_Auto确实会在页面之间拆分内容,而另外两个总是在段之前/之后插入分页符,无论当前页面上是否有足够的空间。

0 投票
1 回答
38 浏览

qt - 如何将带有上下文的行滚动到视图中

我可以像这样滚动一行到视图中:

但这会最小化滚动:新位置通常位于小部件的顶部或底部,我必须手动滚动才能查看上下文。

如何确保 5 行上下文始终可见?

0 投票
1 回答
186 浏览

python - 在 PyQt5 的 QTreeWidget 中使用 QTextCursor

我想用这样的红色波浪在 QTreeWidget 中强调一些东西:在此处输入图像描述

我试图用 QTextCursor 来解决这个问题,但显然这是不可能的。有人知道另一种方法吗?

例如,这是一种使用 QTextCursor 为单词下划线的方法:

0 投票
1 回答
128 浏览

c++ - 当用户在 QMainWindow 中选择文本时创建上下文菜单

我正在制作一个文本编辑器,一个目标是创建一个上下文菜单,当用户用鼠标选择/突出显示文本时会出现该菜单,这将带来一些进一步的选项。重要的是,我可以将用户选择的文本读入其他 QString 对象。

到目前为止,我已经尝试通过覆盖 mousePressEvent 和 mouseReleaseEvent 来重复执行此操作,以便在文档中适当地定位 QTextCursor 并选择文本。

代码如下:

经过一些测试,我发现我在 QTextEdit 小部件中的左键单击被其他一些阻止我选择文本的功能忽略或消耗,而右键单击似乎工作正常,我可以移动 QTextCursor 的位置但显然无法选择任何事物。

如果这种方法不起作用,我不确定如何进行,所以任何建议都将不胜感激。

谢谢。

0 投票
2 回答
52 浏览

qt - 如何将 QTextCursor 从 QTextEdit 移动到另一个 QTextEdit?

如何将 QTextCursor 从 QTextEdit 移动到另一个 QTextEdit?这是我的代码:

0 投票
0 回答
82 浏览

python - 清除 QPlainTextEdit 中高亮光标的选择

例子

我构建了一个自定义的 PlainTextEdit 作为日志查看器小部件。我有一个外部 lineEdit 小部件来指定搜索模式(类似于您使用 ctrl+f 在网站上查找文本的方式)。lineEdits textChanged 信号连接到该_find_text()方法。textEdit 应该突出显示相应的匹配项。但是,该方法似乎存在一些问题_clear_search_data(),因为在先前匹配期间使用 self._highlight_cursor 进行的选择继续保持突出显示。

编辑:使用 QSyntaxHightlighter 是一种仅突出显示的优雅方法,但是我必须使用 manuel 方法有两个原因 a) 日志文件可能会变得很重,因此上述解决方案允许我们仅在可见行范围内限制突出显示 b)我必须能够在文档中的匹配项之间跳转

0 投票
2 回答
124 浏览

qtextdocument - 如何从 QTextDocument 中删除所有文本颜色属性?

QTextDocument从 HTML 文件中读取;给定一个QString名为的 HTML 数据topicFileData,我愿意topicFileTextDocument.setHtml(topicFileData);。然后我想去掉所有的颜色信息,使整个文档只使用默认的前景和背景画笔。(我不想明确地将文本设置为白色背景上的黑色文本;我想从文档中删除颜色信息。)(背景信息:我需要这样做的原因是文档中的某些跨度被错误地设置为黑色前景色,而不仅仅是没有设置颜色信息,这会导致这些跨度在我的时候显示为黑底黑字当 Qt 将默认文本背景画笔更改为黑色而不是白色时,应用程序正在“深色模式”下运行。)

这是我尝试过的:

不幸的是,这不起作用;看起来mergeCharFormat()不明白我希望合并clearForeground()clearBackground()操作以剥离这些属性。

当然,我可以这样做tc.setCharFormat(noColorFormat);,这确实会正确剥离颜色属性;但它也会消除所有其他字符格式信息(字体等),这是不可接受的。

所以,理想情况下,我想找到一个 API,让我从QTextDocument. 或者,我想我需要QTextDocument一个一个地遍历所有 span,获取当前 span 的 char 格式,从格式中删除颜色属性,并将修改后的格式设置回 span。那很好;但我不知道如何以这种方式循环跨度。谢谢你的帮助。

0 投票
0 回答
151 浏览

qt - 如何在 Qt 中使选定/突出显示的文本区域有边框和半透明?

突出和选择

我正在使用 Qt 5.3 并希望突出显示并选择 QTextEdit 的文本,例如 Qt Creator。我得到的只是蓝色背景和白色的简单突出显示。我可以使用样式表和 QTextCharFormat 更改突出显示背景和文本颜色。但是我不能

  1. 使高亮区域的边界半径稍微圆润。(截图中的注意事项)
  2. 为选择区域画一个边框。(截图中的注释)

换句话说,我想格式化选择并突出显示背景区域。

0 投票
1 回答
149 浏览

qt - 如何从组件 QTextDocument 获取没有元信息的 HTML 文本

描述

TextArea在 QML 中创建了一个组件,与示例类似,我基于指向 a 的指针创建了一个 DocumentHandler 类,该指针QQuickTextDocument通过textDocument属性获取。我需要这个以便能够格式化文本,也就是说,使其成为粗体、下划线、斜体、删除线等。

我需要的

我需要获取一个文本,其中格式化的部分将显示为 HTML 标记。

例如粗体文本最终我想进入表格<b>Bold text</b>。或者例如,我想在表单中使用粗体和斜体文本<b><i>Bold and italic text</i></b>(放置标签的顺序无关紧要)。

我试过的

我尝试使用toHtml()函数,但这个函数不适合我,因为:

  1. 它会产生很多我不需要的不必要的信息。例如,对于粗体文本 ,它返回以下结果:
  1. 我需要表示文本的常用标签(<b>等),该功能以标签属性的<i>形式形成。所以它用这一行改变了粗体:.style<span><span style=" font-weight:600;">
0 投票
1 回答
31 浏览

c++ - 每当我尝试在 QTextCursor 选择上调用 QTextCharFormat 时,父函数都会终止

我最近遇到了一个奇怪的问题,即我的处理程序函数在被调用QPlainTextEdit::selectionChanged时会过早终止。QTextCursor::mergeCharFormat/setCharFormat/setBlockCharFormat此外,在终止后它会再次被调用并遇到相同的问题,从而导致无限循环。

我正在尝试复制许多文本编辑器(例如 Notepad++)中存在的功能,其中在选择一个单词时,整个文档中的所有相似单词都会突出显示。我的TextEditor班级从QPlainTextEdit.

最小的可重现示例如下:

主.cpp

主窗口.h

文本编辑器.h

正则表达式荧光笔部分基于此 SO answer

我怀疑格式由于某种原因无法应用,可能会导致在 Qt 中捕获并终止父函数的异常。我尝试在有问题的区域周围添加我自己的 try-catch 处理程序,但它什么也没做(如预期的那样)。

我不确定这是我的错还是 Qt 内部的错误。有谁知道我做错了什么或如何解决这个问题?