QT Create 学习之 自动布局

在UI最大化过程中,为保持界面美观,需控件根据输出大小自动调整。

可以通过读取输出尺寸进行计算,也可通过 QT Create 自带的布局策略。

(1)计算方式

整体布局如下图所示


代码如下:

    //全屏参数
    QDesktopWidget *deskWgt = QApplication::desktop();
    screen_width = deskWgt->width();
    screen_height = deskWgt->height();

    //调整位置
    ui->listWidget_channel->move(10, 0);
    ui->listWidget_channel->resize(screen_width/10-10, screen_height/2 - 10);
    ui->listWidget_alarm->move(10, screen_height/2+10);
    ui->listWidget_alarm->resize(screen_width/10-10,screen_height/2 - 10);
    ui->listWidget_model->move(screen_width/10+10, 0);
    ui->listWidget_model->resize(screen_width/10-10, screen_height);
    ui->listWidget_normal->move(screen_width/5+10, screen_height/20);
    ui->listWidget_normal->resize(screen_width/10*8-10, screen_height/20*18);

先取得输出尺寸,然后根据各控件的面积比例进行 resize 和 move

全屏显示:

Dialog m_dialog;
m_dialog.resize(QSize(screen_width, screen_height));
m_dialog.show();

直接对主对话框进行缩放至全屏。


(2)布局策略

整体布局如下图所示


先 CTRL 选中左侧两个 TableWidget,右键布局方式选择 垂直布局


之后设置 LayoutStretch 比例为1,1,表示不管如何缩放,这两个控件垂直比例为1:1

之后 CTRL 选择该布局及中侧 TableWidget 及右侧 Label

右键布局方式选择 水平布局


比例设置成1,1,8,即设定了缩放时横向比例

最后一步,右键空白处选择在窗体布局中布局,或者栅格布局即可。

效果如下图



猜你喜欢

转载自blog.csdn.net/u010477528/article/details/78146907