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图片查看而已。)