QT c++ 代码布局原则 简单例子

ops/2024/10/21 6:33:17/

本文描述QT c++ widget代码布局遵循的原则:实中套虚,虚中套实

本文最后列出了代码下载链接。

在QT6.2.4 msvc2019编译通过。

所谓是实体组件:比如界面框、文本标签、组合框、文本框、按钮、表格、图片框等。

所谓是Layout组件:比如垂直布局、水平布局、网格布局、表单布局、堆栈布局。

所谓布局是指定排列规则

1.界面

                               图1-界面效果

                            图2-布局关系示意

说明:图中的实线示意实体组件,虚线示意布局方式

2.代码

2.1界面类头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QWidget>
#include <QGroupBox>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void initUI();

private:
    Ui::Widget *ui;
    QLabel * lb;
    QGroupBox  * gb;
    QLineEdit * le;
    QPushButton *btn1;
    QTextEdit * txt;

};
#endif // WIDGET_H
2.2 cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{

    ui->setupUi(this);
    initUI();

}
void Widget::initUI()
{
    QVBoxLayout * mainlayout = new QVBoxLayout(this);指定布局属于啥组件
    lb =new QLabel(this);
    lb->setText("自动");
    gb=new QGroupBox();
    QHBoxLayout *hboxlayout=new QHBoxLayout(gb);//指定布局属于啥组件 
    le=new QLineEdit(this);
    le->setFixedWidth(100);
    le->setFixedHeight(20);
    btn1 = new QPushButton(this);
    btn1->setFixedWidth(100);
    btn1->setFixedHeight(20);
    btn1->setText(tr("button1"));
    hboxlayout->addWidget(le);//指定布局包含啥组件
    hboxlayout->addWidget(btn1);//指定布局包含啥组件
   // gb->setLayout(hboxlayout);//指定组件包含啥布局,因为上没有一行的参数是gb,本行可忽略
    mainlayout->addWidget(lb);//指定布局包含啥组件
    mainlayout->addWidget(gb);//指定布局包含啥组件
    this->setLayout(mainlayout);
}
Widget::~Widget()
{
    delete ui;
}

3.代码下载链接

https://download.csdn.net/download/weixin_39926429/89238564


http://www.ppmy.cn/ops/22136.html

相关文章

Idea异常 | Process 453 is still running

问题现象 Idea启动报错"Cannot connect to already running IDE instance. Exception: Process 453 is still running" 问题原因 通常原因是Idea未正常关闭&#xff0c;导致进程锁文件没有删除。同样Pycharm等其它JeBrains等产品也有可能出现这个问题 解决办法 查…

Kotlin语法入门-访问和属性修饰符(5)

Kotlin语法入门-访问和属性修饰符(5) 文章目录 Kotlin语法入门-访问和属性修饰符(5)五、访问和属性修饰符1、kotlin修饰符2、internal3、默认修饰符4、open关键字开启继承并实现 五、访问和属性修饰符 1、kotlin修饰符 kotlin在常见的访问修饰符private&#xff0c;protected…

C语言-------实现贪吃蛇小游戏

目录 一、预备知识 1.1 Win32 API介绍 Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外&#xff0c; 它同时也是一个很大的服务中心&#xff0c;调用这个服务中心的各种服务&#xff08;每一种服务就是一个函数&#xff09;&#xff0c;可以帮应用程…

Debian 系统设置SSH 连接时长

问题现象&#xff1a; 通过finalshell工具连接Debian系统远程操作时&#xff0c;总是一下断开一下断开&#xff0c;要反复重新连接 &#xff0c;烦人&#xff01; 解决办法&#xff1a; 找到ssh安装目录下的配置文件&#xff1a;sshd_config vi sshd_config &#xff1a; 找到…

在k8s中以deployment方式部署minio

minio官网给的demo是通过pod方式部署的&#xff0c;我碰到了好几次因为k8s集群断电重启后&#xff0c;以单pod方式部署部署的minio消失。因此这里改用deplyment的方式部署minio。 以下是完整的minio部署清单 --- # Deploys a new MinIO Pod into the metadata.namespace Kube…

低代码+定制物资管理:创新解决方案探析

引言 在当今快速变化的商业环境中&#xff0c;企业面临着不断增长的挑战&#xff0c;如提高效率、降低成本、满足客户需求等。为了应对这些挑战&#xff0c;企业需要不断创新并采用先进的技术解决方案。在这样的背景下&#xff0c;低代码开发和定制化物资管理成为了引领企业变…

Maven介绍 主要包括Maven的基本介绍,作用,以及对应的Maven模型,可以对Maven有一个基本的了解

1、Maven介绍 1.1 什么是Maven Maven是Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 官网&#xff1a;https://maven.apache.org/ Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&…

elasticsearch 聚合查询

文章目录 前言elasticsearch 聚合查询1. 桶聚合2. 度量聚合3. 嵌套聚合4. 指标聚合 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在…