memoのQt自动调整窗口尺寸

折腾了好久,好久。终于搞出一个自认为还算可以的方案:

QTimer::singleShot(0, this, [this]{ this->adjustSize(); });

这个解决方案确实有点无语。也算够用吧。虽然猜测会有延迟(毕竟是发送的定时事件)。

找了很久之后,我加了一个action,然后调用adjustSize,发现主窗口是可以自动调整的。
但是在我某个函数内部,调用adjustSize就不行。于是大胆一点,加个定时器,进入事件循环去搞吧。
我的qt窗口很简单,就是一个QMainWindow,直接designer里面加了一个QLabel,直接Grid布局一下。实现的功能也很简单,拖拽图片文件,然后显示出来。

当然,还有一个方法,就是设置QMainWindow的Layout:

this->layout()->setSizeConstraint(QLayout::SetFixedSize);

缺点就是,不能resize了。不过确实窗口尺寸给缩得大小正好了。

纪念一下,把源码保存一下。(这个鬼畜的名字是因为我想写一个简单的PPM图片查看而已。)

posted @ 2021-04-21 19:05  薛定谔の三味  阅读(218)  评论(0编辑  收藏  举报