Qt窗体设计的布局

文章编号:670 互联网资讯 2023-10-23 qt 开发语言

本文介绍Qt窗体的布局。

Qt窗体的布局分为手动布局和自动布局,手动布局即靠手工排布各控件的位置。而自动布局则是根据选择的布局类型自动按此类型排布各控件的位置,使用起来比较方便,本文主要介绍Qt的自动布局。

1.垂直布局

垂直布局就是将其中的控件按垂直方向等间隔排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);

    window->setLayout(layout);
    window->show();

2.水平布局

垂直布局就是将其中的控件按水平方向等间隔排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");

    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(button1);
    layout->addWidget(button2);

    window->setLayout(layout);
    window->show();

3.栅格布局

垂直布局就是将其中的控件按栅格对齐。如果控件的位置不处于水平或垂直对齐的方向,则自动按矩阵的方式排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");

    QGridLayout *layout = new QGridLayout;
    layout->addWidget(button1, 0, 0);
    layout->addWidget(button2, 1, 1);

    window->setLayout(layout);
    window->show();

4.表单布局

表单布局主要用于Label控件和EditLine控件或其他控件按表格(N*2)的方式进行排布。如下图所示。

代码方式:

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QLabel *label1 = new QLabel("one:");
    QLabel *label2 = new QLabel("two:");

    QFormLayout *layout = new QFormLayout;

    layout->insertRow(0, label1, button1);
    layout->insertRow(1, label2, button2);

    window->setLayout(layout);
    window->show();

5.弹簧控件

弹簧控件配合以上布局可以实现控件随窗口变换自动缩放的效果。如下图的排布可实现窗口拖拽及最大化时控件也随着自动缩放及最大化。

弹簧控件构造函数:

QSpacerItem(int w, int h, QSizePolicy::Policy hPolicy = QSizePolicy::Minimum, QSizePolicy::Policy vPolicy = QSizePolicy::Minimum)

代码方式:

    QWidget *widget = new QWidget;
    QVBoxLayout *layout = new QVBoxLayout(widget);
    QPushButton *button = new QPushButton("按钮");
    QLineEdit *lineEdit = new QLineEdit;
    QSpacerItem *spaceItem = new QSpacerItem(20, 40, QSizePolicy::Expanding, QSizePolicy::Maximum);

    layout->addWidget(button);
    layout->addItem(spaceItem);
    layout->addWidget(lineEdit);

    widget->setLayout(layout);

    widget->show();

总结,本文介绍了Qt窗体的布局。


本文地址: http://www.wangzhanbaike.cn/article/bacb67ed454eb5496a78.html
百度百科_全球领先的中文百科全书

百度百科是一部内容开放、自由的网络百科全书,旨在创造一个涵盖所有领域知识,服务所有互联网用户的中文知识性百科全书。在这里你可以参与词条编辑,分享贡献你的知识。

舆情服务_舆情监控_舆情系统-百度智能云

百度智能云提供实时舆情数据、智能语义分析、百度搜索指数及全网用户画像等数据分析能力。客户可以通过使用API数据服务实现个性化深度设置,或应用舆情SAAS平台全方位实时分析互联网舆论,准确把握时事脉搏。

北斗卫星导航系统

该站点未添加描述description...

【找工作_人才招聘_通化招聘信息】-百度百聘

全职招聘,名企推荐,靠谱兼职,招聘会,校园招聘,职场资讯,宣讲会,百度百聘招聘网免费聚合全网最新最全的招聘信息。百度百聘是百度公司旗下专业的招聘搜索引擎,全网好工作,就上百度百聘

全国互联网安全管理平台

该站点未添加描述description...

虎牙直播-技术驱动娱乐-弹幕式互动直播平台

虎牙直播是以游戏直播为主的弹幕式互动直播平台,累计注册用户2亿,提供热门游戏直播、电竞赛事直播与游戏赛事直播,手游直播等。包含英雄联盟lol,王者荣耀,绝地求生,和平精英等游戏直播,lol、dota2、dnf等热门游戏直播以及单机游戏、手游等游戏直播。

中文logo _素材图片_平面,UI/UX图片素材_花瓣网

花瓣网,设计师灵感库,素材图库分发。发现你喜欢的中文logo图片,中文logo灵感图,将你喜欢的中文logo素材采集到平面,UI/UX

ByteDance IconPark

IconPark,parkyouricon.MadebyByteDance

东方资讯

该站点未添加描述description...