Qt 垂直布局 (QVBoxLayout)

Qt 垂直布局 (QVBoxLayout)Qt垂直布局(QVBoxLayout)上一节说了水平布局:https://blog.csdn.net/weixin_42837024/article/details/82114258QVBoxLayout:在垂直的方向上排列控件上下排列QVBoxLayout*pLayout=newQVBoxLayout();//水平布局QPushButton*p…

大家好,又见面了,我是你们的朋友全栈君。

Qt 垂直布局 (QVBoxLayout)

上一节说了水平布局:https://blog.csdn.net/weixin_42837024/article/details/82114258

QVBoxLayout:在垂直的方向上排列控件 上下排列

这里写图片描述

    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");


    pLayout->addWidget(p1);

    pLayout->addWidget(p2);

    pLayout->addWidget(p3);

    pLayout->addWidget(p4);


    this->setLayout(pLayout);

常用的接口:

addStretch();//添加一个可伸缩空间

addSpacing(int size);//添加一个固定size 大小的间距

setMargin(int);//setMargin可以设置左、上、右、下的外边距,设置之后,他们的外边距是相同的

//与setMargin功能相同,但是可以将左、上、右、下的外边距设置为不同的值
setContentsMargins(int left, int top, int right, int bottom );

setContentsMargins(const QMargins &margins); 设置外边距

addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0) //添加控件
默认的,我们添加控件至水平布局中,默认都是垂直方向居中对齐的。

setDirection(QBoxLayout::RightToLeft)//设置布局方向

setStretchFactor(QWidget *w, int stretch);//设置控件、布局的拉伸系数
setStretchFactor(QLayout *l, int stretch);

增加一个可伸缩空间:

    this->setWindowTitle("垂直布局(QVBoxLayout)");
    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");

    pLayout->addStretch();

    pLayout->addWidget(p1);

    pLayout->addWidget(p2);

    pLayout->addWidget(p3);

    pLayout->addWidget(p4);


    this->setLayout(pLayout);

这里写图片描述

上边就相当于有一个弹簧顶着 , 你窗口变高 他的弹簧就会拉伸

设置间距:

    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");

    pLayout->setSpacing(150);

    pLayout->addWidget(p1);

    pLayout->addWidget(p2);

    pLayout->addWidget(p3);

    pLayout->addWidget(p4);


    this->setLayout(pLayout);

这里写图片描述

增加间距:

    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");

    pLayout->addStretch(50);

    pLayout->addWidget(p1);

    pLayout->addWidget(p2);

    pLayout->addStretch(150);

    pLayout->addWidget(p3);

    pLayout->addStretch(10);

    pLayout->addWidget(p4);

    this->setLayout(pLayout);

这里写图片描述

如果要控件之间的间距相同用设置间距就可以,增加间距是做控件之间间距不一样效果

设置对齐方式:

    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");

    //水平居左,垂直居上
    pLayout->addWidget(p1,0,Qt::AlignLeft | Qt::AlignTop);
    //居右,居下
    pLayout->addWidget(p2,0,Qt::AlignRight | Qt::AlignBottom);
    //居中
    pLayout->addWidget(p3,0,Qt::AlignCenter );

    pLayout->addWidget(p4);

这里写图片描述

设置方向:

    QVBoxLayout* pLayout = new QVBoxLayout();//水平布局

    QPushButton* p1 = new QPushButton("p1");
    QPushButton* p2 = new QPushButton("p2");
    QPushButton* p3 = new QPushButton("p3");
    QPushButton* p4 = new QPushButton("p4");

    pLayout->addWidget(p1);

    pLayout->addWidget(p2);

    pLayout->addWidget(p3);

    pLayout->addWidget(p4);

    pLayout->setDirection(QBoxLayout::BottomToTop);//自下而上
    this->setLayout(pLayout);

这里写图片描述

    98年菜鸡一枚,请大佬们多多关照!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147697.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 淘宝IP地址库API接口(PHP)通过ip获取地址信息

    淘宝IP地址库API接口(PHP)通过ip获取地址信息

    2021年11月5日
    154
  • 使用Docker(k8s)安装Kafka并使用宿主机连接

    使用Docker(k8s)安装Kafka并使用宿主机连接使用Docker(k8s)安装Kafka并使用宿主机连接安装Docker及docker-compose具体安装方法可以去官网看教程检查docker-compose是否安装成功创建docker-compose.yml文件version:’2’services:zookeeper:image:”zookeeper”hostname:”zookeeper.local”container_name:”zookeeper”#设置网络别名可随

    2022年8月21日
    7
  • 键盘win键没反应?估计是锁了[通俗易懂]

    键盘win键没反应?估计是锁了[通俗易懂]今个想打开cmd,发现win+R竟然没反应,随后进行排查,发现只有键盘的win键不能用,笔记本原配可以用在网上翻了万能网友的记录后,才知道键盘的win键被上锁一般使用fn+win解锁但是IKBC很扯淡,IKBC必须按fn+右侧的win祝你成功,我的朋友…

    2022年5月4日
    56
  • Android开发笔记(序)写在前面的目录[通俗易懂]

    知识点分类一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平。因此博主就想,入门的东西咱就不写了,人不能老停留在入门上;其次是想拾缺补漏,写写虽然小众却又用得着的东西;另外就是想以实用为主,不求大而全,但求小而精;还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来。个人的经验…

    2022年4月14日
    42
  • AC餐饮指的是什么_餐饮tc和ac的区别

    AC餐饮指的是什么_餐饮tc和ac的区别奶牛们在吃饭方面十分挑剔。每头奶牛都有自己喜欢的食物和饮料,并且不会食用其他不喜欢的食物和饮料。农夫约翰为他的奶牛们做了美味的饭菜,但他忘了对照他们的喜好来检查菜单。虽然他可能无法令所有奶牛满意,但他想给尽可能多的奶牛提供一顿完整的用餐—-既有食物可吃,也有饮料可喝。农夫约翰一共烹制了 F 种食物,并提供了 D 种饮料。约翰共有 N 头奶牛,其中第 i 头奶牛有 Fi 种喜欢的食物以及 Di 种喜欢的饮料。约翰需要给每头奶牛分配一种食物和一种饮料,并使得有吃有喝的奶牛数量尽可能大。每种食物

    2022年8月11日
    4
  • python:最大公约数和最小公倍数

    python:最大公约数和最小公倍数任务目标:1.输入两个数2.打印这两个数的最大公约数3.打印这两个数的最小公倍数实验环境:pycharm的python3.6实现代码:#最大公约数和最小公倍数a=int(input(‘请输入第一个数:’))b=int(input(‘请输入第二个数:’))Min=min(a,b)Gys=1foriinrange(1,int(Min+1)):…

    2022年5月13日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号