问题标签 [qplaintextedit]
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 - 为什么在 QPlainTextEdit 中移动光标滚动时不调用 scrollContentsBy(dx, dy) 函数
我已经派生了 QPlaintTextEdit 并覆盖了 scrollContentsBy 函数。只有当我们使用鼠标滚轮或滚动条时才会调用它。当我们使用箭头键移动光标并滚动内容时,不会调用此函数。
我为 QTextEdit 做了同样的事情,它工作正常(意味着它在所有情况下都会被调用)。
这种行为的原因是什么?我可以使用什么替代方案?
注意:这是函数原型
环境:
- Windows 7的
- Qt 4.8
- 对比 2008
更新:以下替代方案均无效,
- 价值改变
- 滑块已移动
qt - 如何使用 QPlaintTextEdit 高效地创建固定宽度的列记录器?
我想使用 QPlainTextEdit 在 Qt (4.8) 中创建一个日志窗口。这意味着我将使用appendPlainText
. 该日志需要显示需要具有固定宽度的数据列,与显示的数据无关(它们将具有数据的最大大小)。IOW 我希望他们能够展示这样的东西:
正如您在上面的示例中所看到的,每列都有固定的宽度,例如,如果某些数据小于可用空间,则下一个数据将从相应列的确切起点开始(而不是紧随其后)。我需要知道如何在 Qt 中以一种有效的方式做到这一点。
在网上做了一些研究后,我发现我采取的一些方法是不合适的。第一个是使用 QString::args():
上面的代码有一些不足:首先它的默认显示配置是集中数据,除非在告诉列大小的地方设置了“-”。(文件正式告诉正数给出了一个右对齐的值,但我的测试显示不是这样 - 见下文)不过,这是错误且有限的:我无法做到右对齐,如果我告诉首先arg
具有左对齐的文本,然后所有其他后续args
也显示左对齐的文本,即使它们的列宽编号是正数。此外,它仅在字体样式为 Monospace 时才真正起作用。
我发现的另一种方法是使用 QTextStream:
或者
但这似乎“过于复杂”;我期待一个更像args
.
难道没有别的办法了吗?
这是我对args
代码的测试:
qt - QPlainTextEdit 双击事件
我需要在 QDockWidget 内的 QPlainTextEdit 上捕获双击事件。
在我的实际代码中,我在 QDockWidget 中安装了一个事件过滤器来处理调整大小操作,并在 QPlainTextEdit 中安装了一个事件过滤器来处理双击事件:
但是,虽然它适用于 QDockWidget,但我无法捕捉到 QPlainTextEdit 的双击事件:
使用此代码,永远不会显示“双击”消息。知道代码有什么问题吗?
python - QPlainTextEdit 认为如果它有一个空文本它被修改
我正在使用 PyQt 构建一个简单的 IDE,如果您加载一个空文件,则会出现奇怪的错误。下面发布了一个小示例脚本:
正如预期的那样,这显示了一个带有纯文本编辑器的窗口。一旦setPlainText
调用该方法,编辑器就会发出两个事件:一个modificationChanged
带有 的事件changes=True
,一个带有 的事件changes=False
。有点奇怪,但很好。但是,如果您更改setPlainText('a')
为setPlainText('')
,则只会发出一个事件,这次使用changes=True
. 更糟糕的是,在告诉编辑它没有用 修改后setModified(False)
,它坚持认为它已经以某种方式进行了更改。
有谁知道是什么原因造成的以及我如何解决这个问题?
更新:这似乎是一个错误,也会影响QPlainTextEdit.clear()
.
下面的解决方法在QPlainTextEdit
to fixclear()
和setPlainText('')
.
c++ - 如何在 QPlainTextEdit 中使一行只读?
我想在子类 QPlainTextEdit 中将特定行设为只读。
我知道我可以覆盖 keyPressed 事件并将其忽略为只读,但我需要过滤非编辑键(例如箭头导航键)的键事件。此外,这不会解释粘贴在该行上的文本。
是否有对此的内置支持或更好的方法?
qt - QTextEdit 或 QTextBrowser 性能问题
我有一个沉重的QString
.
我需要将其显示为输出。
我尝试了两者QTextEdit
或QTextBrowser
。以及所有设置文本的方法,如,,setText
......性能真的很差。最烦人的是在用户界面上设置东西意味着阻塞主线程。因此程序将在此过程中变得无响应。append
setPlainText
有没有更好的方法来显示视觉文本结果?
qt4 - QTextEdid(或 QPlainTextEdit)中字符的垂直对齐方式
我正在尝试在 QTextEdit/QPlainTextEdit 中编写以下漂亮的表格:
但是当我这样做时,appendPlainText(QString)
我不会让字符垂直对齐。似乎每个字符都有不同的宽度,所以结果几乎是一团糟,文本有点左对齐。
c++ - 如何禁用 QPlainTextEdit 中文本块的编辑?
我正在制作一个基于 QPlainTextEdit 的组件。我想将部分文本设为只读(但仍允许选择、导航和剪贴板等)。
我可以检测到按键事件并抑制它,但我需要一个条件来执行此操作。有没有办法阻止编辑而不必检查不同的键、组合等(在每个平台上可能不同)?
c++ - QPlainTextEdit - 将文档搜索到末尾并从头开始搜索
我想在 QPlainTextEdit 中搜索从当前光标到结尾的字符串。如果什么也没找到,我想从头开始继续搜索。只有在这个阶段,如果什么都没找到,就会出现一条消息。这是代码:
问题是线setTextCursor(cursor);
- 没有这一行,搜索不会从头/尾继续
- 有了这一行,一切都很好,除了找不到字符串时,光标位于文档的开头/结尾,并且用户在文档中的当前位置丢失了。
如何在文档中搜索字符串并且如果没有找到则不更改当前位置?
更新
感谢 IAmInPLS,代码如下所示。我为verticalScrollBar 添加了保值。即便如此,当没有发现任何内容时会出现短暂的闪烁:cursor.movePosition(reverse?QTextCursor::End:QTextCursor::Start);
我们怎样才能摆脱它?怎么可能看起来像专业编辑?创建另一个不可见的 QPlainTextEdit 元素以在其中搜索是一个想法吗?
c++ - Qt 设置 QPlainTextEdit 的滚动区域以匹配其他滚动区域。
我一辈子都不知道该怎么做。
我有两个 QPlainTextEdits,自动换行。
我使用 Now myTextEdit 填充myTextEdit->document()->setPlainText(myText);
了一个水平滚动条。现在我希望我的其他 textEdit 能够滚动与 myTextEdit 完全相同的数量,尽管其中有多少单词。如何设置其他文本编辑的滚动区域内的宽度以匹配 myTextEdit 的宽度?
我希望文档宽度相同,但 myTextEdit->document()->size() 没有用。任何人都可以帮忙吗?