- A+
所属分类:Qt经验集
问题
QDialog如果改变大小后,调用size()函数无法获取改变后的值
解决方案
调用size函数前,先调用一次processEvents函数,让系统及时处理改变大小的重绘事件,处理完后,调用size函数返回的大小就是正确的。
processEvents函数详解
调用线程根据指定的标志处理的所有挂起事件,直到没有要处理的事件。
当程序忙于执行长时间操作(例如复制文件)时,您可以偶尔调用此函数。
如果您的函数循环调用此函数,并且没有开启Qt的事件循环,则不会处理 DeferredDelete 事件。这可能会影响依赖延迟删除事件正常运行的界面的行为,例如 QToolTip。另一种方法是从该本地循环中调用 sendPostedEvents方法。
调用此函数仅处理调用线程的事件。