Qt 在处理时更新(重绘)文本框

Posted

技术标签:

【中文标题】Qt 在处理时更新(重绘)文本框【英文标题】:Qt to update (repaint) textbox while processing 【发布时间】:2014-03-25 03:16:00 【问题描述】:

我的 Qt 4 应用程序只能更新日志框区域(实际上是整个 GUI),直到函数完成执行。有没有办法在执行期间更新 GUI/日志框?就像在 for 循环中添加 QWidget::repaint()QWidget::update() 之类的东西,这样用户就可以看到 GUI 正在处理,而不是等到函数完成并立即打印出日志。

【问题讨论】:

【参考方案1】:

您需要在函数执行期间偶尔调用QCoreApplication::processEvents()。通过让事件循环运行,这将使 GUI 保持活跃和响应。

另一种方法是在单独的线程中执行您的函数。更多关于 Qt 线程的信息可以在这里找到:http://qt-project.org/doc/qt-4.8/threads.html

【讨论】:

以上是关于Qt 在处理时更新(重绘)文本框的主要内容,如果未能解决你的问题,请参考以下文章

Qt限制文本框输入的方法(使用QRegExpValidator,为QLineEdit所独有)

qt中如何判断光标在哪个文本框中啊

Qt 搜索框

Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)

输入 access 2007 表单时如何更新另一个文本框?

WPF中的文本框绑定更新[重复]