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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 主板开启网络唤醒_WOL网络唤醒远程开机功能设置方法图文教程[通俗易懂]

    主板开启网络唤醒_WOL网络唤醒远程开机功能设置方法图文教程[通俗易懂]很多使用WOL远程唤醒软件的用户们都不知道怎么开启WOL网络唤醒远程开机功能,有这软件也用不了啊!今天小编就给大家介绍怎样才能设置电脑远程唤醒,不同牌子的主板、网卡、路由器在选项设置的名称和位置上都基本都不相同,但是思路都是差不多的,大家用户根据自己电脑的实际情况进行设置。1.设置主板BIOS首先,我们要在主板BIOS里面设置WOL唤醒功能的开关,大部分主板都会支持唤醒,但每个主板的…

    2022年6月2日
    324
  • ncurses编程文档_nupack软件

    ncurses编程文档_nupack软件Frm:http://blog.csdn.net/Mary_Jane/article/details/50769631介绍ncurses(newcurses)是一套编程库,它提供了一系列的函数

    2022年8月4日
    3
  • MIT 操作系统实验 MIT JOS lab2

    MIT 操作系统实验 MIT JOS lab2

    2022年1月16日
    116
  • vmware10.0密钥_windows10永久激活密钥

    vmware10.0密钥_windows10永久激活密钥VMwareWorkstation是功能最强大的热门虚拟机软件,现已自带原生简体中文。用户可在在虚拟机同时运行各种操作系统,进行开发、测试、演示和部署软件,虚拟机中复制服务器、台式机和平板环境,每个虚拟机可分配多个处理器核心、千兆字节的主内存和显存。VMwareWorkstation™11延续了VMware的传统,即提供技术专业人员每天在使用虚拟机时所依赖的领先功能和性能。借

    2022年9月14日
    1
  • errorcode=-4499 sqlstate=08001_math方法

    errorcode=-4499 sqlstate=08001_math方法java.sql.SQLException:java.lang.ClassCastException:java.math.BigIntegercannotbecasttojava.lang.Long

    2022年9月10日
    4
  • awk变量

    awk变量一、awk字段变量变量名属性$0当前记录$1~$n当前记录的第n个字段二、awk内置变量变量名属性FS输入字段分割符,默认是空格RS输入记录分割符,默认是换行符NR已经读处的记录数,就是行号,从1开始NF当前记录的字段个数,就…

    2022年7月27日
    6

发表回复

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

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