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所独有)