QDialogQWidget如果改变大小后,调用size()函数无法获取改变后的值 及时更新 Qt经验 问题 Qt大课堂 QtShare

  • A+
所属分类:Qt经验集

问题

QDialog如果改变大小后,调用size()函数无法获取改变后的值

解决方案

调用size函数前,先调用一次processEvents函数,让系统及时处理改变大小的重绘事件,处理完后,调用size函数返回的大小就是正确的。

processEvents函数详解

调用线程根据指定的标志处理的所有挂起事件,直到没有要处理的事件。

当程序忙于执行长时间操作(例如复制文件)时,您可以偶尔调用此函数。

如果您的函数循环调用此函数,并且没有开启Qt的事件循环,则不会处理 DeferredDelete 事件。这可能会影响依赖延迟删除事件正常运行的界面的行为,例如 QToolTip。另一种方法是从该本地循环中调用 sendPostedEvents方法。

调用此函数仅处理调用线程的事件。

Qt大课堂-QtShare

发表评论

您必须登录才能发表评论!