QHBoxLayout和QVBoxLayout

QHBoxLayout和QVBoxLayoutQHBoxLayout和QVBoxLayout学习QT到现在,我个人觉得QT挺好学的、也挺难的。好学是因为QT所用的都是类,操作的都是类对象,难呢,是因为都是类,有一些类还需要我们自己去定义、去继承、去重写,我感觉都是一点难点。因为需要理解知道其他的类才可以继承使用。现在我们先看一下我们最常用的类,我学习到目前为止,基本每一个项目都会用到的类QHBoxLayout和QVBoxLayout,两个…

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

QHBoxLayout和QVBoxLayout

学习QT到现在,我个人觉得QT挺好学的、也挺难的。好学是因为QT所用的都是类,操作的都是类对象,难呢,是因为都是类,有一些类还需要我们自己去定义、去继承、去重写,我感觉都是一点难点。因为需要理解知道其他的类才可以继承使用。
现在我们先看一下我们最常用的类,我学习到目前为止,基本每一个项目都会用到的类QHBoxLayout和QVBoxLayout,两个类,QHBoxLayout是一个水平布局类,而QVBoxLayout是一个垂直布局类,两个都是我们的布局类。布局,就我个人觉得吧,每一个项目都是要有的布局,因为布局可以吧你的项目布局的美观、变得是自己想要的摆设。
其实有时候我觉得写一个项目就好像我们平常做的是一样,看个人如何的去看,就比如:我要去买一个书架还有一些书回家进行存放。有的人可能会觉得其实买书没必要买书架吧。就我感觉书少的时候还行,但是多起来的时候觉得就算自己去找自己想要的书都难吧。那么就好像我们所做的项目。一个布局一般的项目和一个没布局的项目一样,布局的呢,可能并不是最好的,但是呢看起来很整齐,需要的功能一看就能知道在哪里,而没布局的想要找一个功能还得点开找,那样子我想如果你是老板你也不会要这样的项目吧。
QHBoxLayout水平布局类,就如字面意思,水平布局。我们来看一下简单的例子。

#include "dialog.h"
#include <QHBoxLayout>
Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{ 
   
    QPushButton *btn1 = new QPushButton(tr("btn1"));
    QPushButton *btn2 = new QPushButton(tr("btn2"));
    QPushButton *btn3 = new QPushButton(tr("btn3"));

    QHBoxLayout *lyout =new QHBoxLayout;
    lyout->addWidget(btn1);
    lyout->addWidget(btn2);
    lyout->addWidget(btn3);

    setLayout(lyout);
}

首先我们创建了三个btn按钮进行了水品布局。
在这里插入图片描述

从从结果我们可以看出跟我们想象中的一样吧,对三个按钮进行了布局
那么我们再来看一下QVBoxLayout垂直布局,我们还是这三个按钮为例:
将我们QHBoxLayout改为QVBoxLayout:

#include <QVBoxLayout>
Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{ 
   

    QPushButton *btn1 = new QPushButton(tr("btn1"));
    QPushButton *btn2 = new QPushButton(tr("btn2"));
    QPushButton *btn3 = new QPushButton(tr("btn3"));

    QVBoxLayout *lyout =new QVBoxLayout;
    lyout->addWidget(btn1);
    lyout->addWidget(btn2);
    lyout->addWidget(btn3);

    setLayout(lyout);
}

那么结果也是我们想象中的一样,垂直布局,
在这里插入图片描述

那么我们可以想象一下当我们要把布局摆设的跟我们家里面的书架子一样,那么我们要怎么摆呢?
那么我们就可以想到把它两组合来使用。那么我们来看一下下边的例子:

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{ 
   

    QPushButton *btn1 = new QPushButton(tr("btn1"));
    QPushButton *btn2 = new QPushButton(tr("btn2"));
    QPushButton *btn3 = new QPushButton(tr("btn3"));

    QVBoxLayout *lyout1 =new QVBoxLayout;
    lyout1->addWidget(btn1);
    lyout1->addWidget(btn2);
    lyout1->addWidget(btn3);


    QPushButton *ble1 =new QPushButton(tr("ble1"));
    QPushButton *ble2 =new QPushButton(tr("ble2"));
    QPushButton *ble3 =new QPushButton(tr("ble3"));

    QVBoxLayout *lyout2 =new QVBoxLayout;
    lyout2->addWidget(ble1);
    lyout2->addWidget(ble2);
    lyout2->addWidget(ble3);

    QHBoxLayout *lyout = new QHBoxLayout;
    lyout->addLayout(lyout1);
    lyout->addLayout(lyout2);

    setLayout(lyout);
}

在这里插入图片描述

从这结果我们机也可以看出我们的想象式书架是可以实现的。
但是我们需要接起来的时候需要用到的是lyout->addLayout(lyout1);

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

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

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


相关推荐

  • 【心算】2个两位数相乘。条件:十位相同,个位之和为10

    【心算】2个两位数相乘。条件:十位相同,个位之和为10346207-106.jpg两个两位数,满足以下2个条件:它们的十位数相同;它们的个位数之和为10。例如:76×74=5624在这个例子中,两个数的十位数都是7,而它们的个位数之和是6+4=10。我们可以采用【心算】个位是5的两位数的平方的方式。十位乘以(十位+1)的积,再拼接个位与个位相乘的积。76×74…

    2022年5月18日
    61
  • java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]

    java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]作为文件形式存在的证书一般有这几种格式:1.带有私钥的证书由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。2.二进制编码的证书证书中没有私钥,DER编码二进制格式的证书文件,以cer作为证书文件后缀名。3.Base64编码的证书证书中没有私钥,BASE64编码格式的证书文件…

    2022年5月27日
    70
  • 计算机复试面试问题(计算机面试常见问题)

    面试问题之编程语言1。C++的特点是什么?封装,继承,多态。支持面向对象和面向过程的开发。2.C++的异常处理机制?抛出异常和捕捉异常进行处理。(实际开发)3.c和c++,java的区别?c是纯过程,c++是对象加过程,java是纯面向对象的4.纯虚函数?被virtual修饰的成员函数,再基类不能实现,而他的实现放到派生类中实现。5.什么是内存泄漏?没有de…

    2022年4月15日
    53
  • Jmeter教程(一) – 入门

    Jmeter教程(一) – 入门一、下载登录官网Jmeter下载,得到压缩包jmeter-5.0.tgz,下载地址:http://jmeter.apache.org/download_jmeter.cgi。二、安装将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为E:\Mysoftware\apache-jmeter-5.0。三、运行点击bin目录下的jmeter.bat即可启动Jmeter。启动后可以看到…

    2022年6月6日
    29
  • 微信朋友圈自动点赞

    微信朋友圈自动点赞我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给被人点赞也没啥坏处,但你不评不赞,难免会让你和好友之间有些疏远,给别人点赞吧我又嫌麻烦,于是一直想着做个自动点赞的东西,今天基本实现了,虽然诸多不完整和诸多限制,但还是决定分享出来,主要是我觉得还挺好玩的…

    2022年6月11日
    38
  • CSS画猪

    效果查看:http://hovertree.com/texiao/css3/6/CSS3画猪头:http://hovertree.com/texiao/css3/6/1/代码如下:转自:htt

    2021年12月22日
    36

发表回复

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

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