• 3156阅读
  • 4回复

[提问]怎么判断Qt程序已经启动完毕了 [复制链接]

上一主题 下一主题
离线寒阳
 

只看楼主 倒序阅读 楼主  发表于: 2018-07-02
— 本帖被 圣域天子 从 Qt安装与发布 移动到本区(2018-07-05) —
场景是这样的,我的界面比较复杂,应用了较多布局,我想在程序启动完毕之后,动态计算并调整某些子控件的位置,我发现,就算主窗口已经调用了showevent函数之后,某些子控件的resizeevent还在被调用,因为resizeevent并非同步的,所以我没有办法知道,Qt的程序何时真的启动完毕,所有的控件都已经绘制完成了。请大侠指教!
离线XChinux

只看该作者 1楼 发表于: 2018-07-03
我一般是这样处理的,在构造函数里末尾,加个QTimer::singleShot(0, this, SLOT(myFunc()));
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jigetage

只看该作者 2楼 发表于: 2018-07-04
应该不行,是异步操作。
离线hehui

只看该作者 3楼 发表于: 2018-12-14
我的处理是在主窗口构造函数最后加一个单次的计时器,时间500MS,超时时执行重新布局的操作,这种方式不是非常保险,但没有更好的办法
离线clickto

只看该作者 4楼 发表于: 2018-12-14
主窗口定义一个类似QSet<QString>之类或std::bitset之类的集合,对外提供一个方法来供子窗口初始化结束后赋值打卡,在该方法中判断是否所有子窗口都打卡完毕了。
快速回复
限100 字节
 
上一个 下一个