问题标签 [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.

0 投票
2 回答
5969 浏览

qt - QPlainTextEdit 逐行截断历史

我有一个 GUI 应用程序,其主要部分是QPlainTextEdit。它用于显示应用程序的日志,因此相关的文本会逐行无限增长。

由于应用程序打算运行很长时间,我需要限制将为此日志分配的内存。因此,我希望有一些maxNumLinesmaxNumCharacters参数来确保在到达时将截断历史记录,即在添加新行时将删除标题行(也称为日志轮换)。

为了实现这一点,我找到了功能

因此,像这样未经测试的代码可能会成功:

这是从 中删除第一行的方法QPlainTextEdit吗?是否可能有其他 Qt Text GUI 元素更适合此任务(设置最大行数并在列表的开头截断),例如以某种方式显示QStringList我可以存储行的 a (我可以轻松地erase(0))?

或者 QPlainTextEdit 最终是否最终为相关 QString 的大小实现了这样的上限?

0 投票
1 回答
1027 浏览

c++ - QPlainTextEdit 抛出 std::bad_alloc

我有一个程序可以运行适合某些数据的最小二乘法。此过程在单独的线程中运行,并通过对话框进行控制。这个对话框有一个 QPlainTextEdit 显示拟合更新和最终报告。

该对话框是在 Qt Designer 中创建的,代码在 QtCreator 中运行,我的 Qt 版本是 4.8.1。

我遇到的问题有点不稳定。当我第一次运行该程序时,一切都很好。然后,如果我再次运行它,有时程序会因消息而崩溃

抛出 'std::bad_alloc' 的实例后调用终止 what(): std::bad_alloc 程序意外完成。

我将问题跟踪到对 QPlainTextEdit 的 clear() 方法的调用。这是一些代码。

txtInfo是 QPlainTextEdit 对象。我在创建对象时调用 atxtInfo->clear()以显示空文本编辑。当我单击“运行”工具按钮时,其默认插槽会发出一个运行信号,该信号将启动新线程。QPlainTextEdittxtInfo在这个线程中更新,直到它完成(实际上线程发出一个信号,该信号在主应用程序中被捕获,该主应用程序又调用UpdateDisplay)。

如果我再次单击运行按钮,则会出现崩溃和错误。如果我替换txtInfo->clear(), txtInfo->document()->clear(), bytxtInfo->setPlainText("")或 bytxtInfo->document()->setPlainText("")问题是相同的(第二次执行时崩溃)。偶尔但不经常,我可以在崩溃之前运行几次(大约 10 次)。

最后,如果我注释掉该txtInfo->clear()行,那么我可以尽可能多地运行该例程(在一次测试中,我在运行它大约 80 次后感到疲倦)。

我唯一的(几乎是随机的)猜测是问题与线程的更新有关(它发出一个被捕获的信号,然后只是调用UpdateDisplay函数)。我这么认为的原因是,如果我注释掉信号并创建一个新按钮来调用UpdateDisplay一些虚假信息,一切都很好。

违规行之前的AqApp->processEvents()无效。

我被困在这里。欢迎任何想法。例如,我可以做任何测试来验证调用该clear()方法是否正常?

0 投票
1 回答
238 浏览

qt - 在 QPlainTextEdit 中添加结束行标记

我想添加一条垂直线来标记 80 个字符QPlainTextEdit。我查看了文档,但在文档中看不到任何内容。我需要自己画吗?

0 投票
1 回答
974 浏览

c++ - 如何从 qplaintextedit 获取文本颜色?

我想从纯文本中获取文本颜色。我可以使用 charFormat() 获得 fontWeight 和其他格式,但是当我调试前景色时,它被设置为无颜色!!?

请帮我 ....

示例代码:

TNX

0 投票
2 回答
4967 浏览

layout - Qt formlayout没有垂直扩展qplaintextedit

我很困惑为什么QPlainTextEdit小部件在添加到QFormLayout时不会垂直调整大小。在下面的代码中,文本字段正确地水平放大,但不能垂直放大。

谁能解释这种行为并提供解决方案?我已经尝试了所有我知道的技巧,但无济于事。

这是 QPlainTextEdit 小部件不垂直调整大小的示例: QPlainTextEdit 添加到 QFormLayout 但不垂直调整大小

这是在使用 PyQt 4.5.2 和 Python 32 位 2.6 的 Windows 7 上。

谢谢。

0 投票
4 回答
62546 浏览

c++ - 如何在不添加换行符的情况下将文本附加到 QPlainTextEdit,并将滚动保持在底部?

我需要在QPlainTextEdit不向文本添加换行符的情况下附加文本,但是这两种方法实际上appendPlainText()appendHtml()添加了新段落。

我可以手动执行此操作QTextCursor

那行得通,但是如果在追加之前处于底部,我还需要将滚动保持在底部。

我试图从 Qt 的源代码中复制逻辑,但我坚持下去,因为实际上QPlainTextEditPrivate使用了类,没有它我找不到做同样事情的方法:比如说,我verticalOffset()QPlainTextEdit.

实际上,这些来源包含许多奇怪的东西(至少乍一看),我不知道如何实现它。

这是源代码append()http ://code.qt.io/cgit/qt/qt.git/tree/src/gui/widgets/qplaintextedit.cpp#n2763

0 投票
1 回答
1423 浏览

qt - QTextEdit shift-tab 错误行为

shift+tab 表现为 QTextEdit/QPlainTextEdit 中的选项卡。

看起来像一个没有好的解决方案的常见问题。

当 tab 增加缩进级别而 shift-tab 降低缩进级别时,是否有任何“经典”方式来启用此功能?

0 投票
1 回答
185 浏览

c++ - QPlainTextEdit - 它可以包含多少行?

是否可以在溢出并显示垂直滚动条之前以某种方式计算适合 QPlainTextEdit 控件(具有一定大小)的行数?

0 投票
1 回答
796 浏览

qt - Qt TextEdit 平滑滚动

在 Qt 中,是否可以在文本区域中进行“平滑滚动”?我的意思是,有一个名为“代码编辑器”的 Qt 演示,它QPlainTextEdit用于可编辑的文本区域。当我滚动该区域时,它总是一次跳过一整行,即最上面的行总是完全显示。

例如,在 HTML 中,文本区域“平滑地”滚动其内容,也就是说,它的内容甚至可以滚动一个像素,从而使上面的行部分隐藏。

在 Qt 中有可能有这种行为吗?也许通过使用不同的小部件?

0 投票
1 回答
110 浏览

qt - QPainTextEdit 添加波浪线

我正在开发一个小型 SQL IDE 应用程序,它是一个用于为 Oracle 和 DB2 编写 SQL 过程的简洁工具。我使用 Qt 4 作为 GUI 基础。还是想给My SQL IDE增加即时语法检查功能,它会在语法错误的SQL代码下写一波行,就像VS2010和eclipse一样。但我真的不知道如何处理这个功能。我已经将 QPlainTextEdit 用于文档编辑类。如果您能提供一些提示和提示,我将不胜感激!感谢您的时间!