Qt拖拽界面 (*.ui) 缩放问题及解决办法

问题

使用Qt Designer 设计的界面,在缩放的时候不能随着主窗口一起缩放。

Qt拖拽界面 (*.ui) 缩放问题及解决办法

解决办法

之前遇到这个问题的时候,都是直接重写resizeEvent接口来实现的,在自动生成的Ui_WidgetUi_MainWindow等类中会有一个widget或者centerWidget的成员,所有的拖拽出的控件都是在这之上的。只需要把resizeEvent传递给它即可。

这种方式虽然解决了问题,但是总是不太理想,还需要去改代码。

好的解决办法

其实中问题不需要去改代码,既然所有的拖拽出的控件都在一个widget上,而这个widget是不会随着调用ui->setupUi(this);的窗口一起缩放的,因为它们只有父子对象关系,而没有使用到布局空间。

这里只需要在Qt Designer中选择设计界面的*对象,然后右键单击,在布局选项中选择一个你想要的布局即可。这样之后,moc生成的Ui_XXXX类中会有一个xxxxlayout对象,所有控件都会加载到这个Layout上(替代了原本的widget)。这里生成的xxxxxlayout与选择的布局有关系。

Qt拖拽界面 (*.ui) 缩放问题及解决办法

Qt拖拽界面 (*.ui) 缩放问题及解决办法

上一篇:关于Android开发的一些个人总结(2016.04)


下一篇:android开发系列之MVP设计模式