QT界面自适应大小与跨UI文件实现界面自适应大小
最近由于工作需要学习了一下QT,把花费大量时间学习的点分享出来,希望帮到有需求者。
在UI界面中我们特别需要界面内的部分部件能够随窗体的大小变化而变化,在QT中要实现这点,必须得为frame或者widget添加布局,QT中布局主要有图1所示的四种,布局的使用参见文章:" "。
图1
添加与未添加布局的控件在图标上显示如图2所示,
图2
运行后效果图如下
小窗口显示
全屏窗口显示
如果在同一个UI文件中设置自适应,可以很容易完成,有时候我们需要对UI文件进行嵌套,如在1.ui的某个frame中显示2.ui窗口,这个时候除了在窗口中添加布局之外我们还需要在1.ui文件外应的.cpp文件中手动将2.ui中的窗口添加到1.ui的布局中,如下代码:
m_Canvas = new VideoCanvas(ui->CanvasFrme); ui->CanvasFrameLayout->addWidget(m_Canvas);
其中VideoCanvas为2.ui文件中窗口,CanvasFrameLayout为1.ui中布局控件。