首页 > 其他分享 >02-水平垂直网格布局理解

02-水平垂直网格布局理解

时间:2024-03-26 23:22:54浏览次数:19  
标签:02 widget app 网格 垂直 QPushButton addWidget new include

1. 之前使用布局基本都是创建带有UI界面的,并使用ui设计师进行布局,为了更直观理解水平与垂直布局,在mini qt工程基础上,实现水平垂直布局

2. 垂直布局VBoxLayout

 1 #include <QApplication>
 2 #include <QLabel>
 3 
 4 #include <QHBoxLayout>
 5 #include <QVBoxLayout>
 6 #include <QPushButton>
 7 
 8 int main(int argc, char** argv)
 9 {
10     QApplication app(argc, argv);
11 
12     QWidget *widget = new QWidget;
13     widget->setWindowTitle("my app");
14 
15     QPushButton* btn1 = new QPushButton("one");
16     QPushButton* btn2 = new QPushButton("two");
17     QPushButton* btn3 = new QPushButton("three");
18 
19     QVBoxLayout* vlayout = new QVBoxLayout;
20     vlayout->addWidget(btn1);
21     vlayout->addWidget(btn2);
22     vlayout->addWidget(btn3);
23     widget->setLayout(vlayout);
24 
25     widget->show();
26     return app.exec();
27 }
View Code

实现效果:

       

 3. 水平布局HBoxLayout

 1 #include <QApplication>
 2 #include <QLabel>
 3 
 4 #include <QHBoxLayout>
 5 #include <QVBoxLayout>
 6 #include <QPushButton>
 7 
 8 int main(int argc, char** argv)
 9 {
10     QApplication app(argc, argv);
11 
12     QWidget *widget = new QWidget;
13     widget->setWindowTitle("my app");
14 
15     QPushButton* btn1 = new QPushButton("one");
16     QPushButton* btn2 = new QPushButton("two");
17     QPushButton* btn3 = new QPushButton("three");
18 
19     QHBoxLayout *hlayout = new QHBoxLayout;
20     hlayout->addWidget(btn1);
21     hlayout->addWidget(btn2);
22     hlayout->addWidget(btn3);
23     widget->setLayout(hlayout);
24 
25     widget->show();
26     return app.exec();
27 }
View Code

实现效果:

      

使用这样的方法更加深刻了解布局方式; 

4. 网格布局QGridLayout

 1 #include <QApplication>
 2 #include <QLabel>
 3 
 4 #include <QHBoxLayout>
 5 #include <QVBoxLayout>
 6 #include <QGridLayout>
 7 #include <QPushButton>
 8 
 9 int main(int argc, char** argv)
10 {
11     QApplication app(argc, argv);
12 
13     QWidget *widget = new QWidget;
14     widget->setWindowTitle("my app");
15 
16     QPushButton* btn1 = new QPushButton("one");
17     QPushButton* btn2 = new QPushButton("two");
18     QPushButton* btn3 = new QPushButton("three");
19 
20 
21     QGridLayout* glayout = new QGridLayout;
22     glayout->addWidget(btn1, 0, 0);
23     glayout->addWidget(btn2, 0, 1);
24     glayout->addWidget(btn3, 1, 1);
25     widget->setLayout(glayout);
26 
27     widget->show();
28     return app.exec();
29 }
View Code

实现效果:

这些布局与ui设计师界面实现几乎一样

 

标签:02,widget,app,网格,垂直,QPushButton,addWidget,new,include
From: https://www.cnblogs.com/lbx-cnblogs/p/18097906

相关文章

  • 算法模板收集 (截至2024.3.26)
    准备线下比赛用的模板,会一直更新,但更新频率不高。找个代码托管平台放一下或许更合适,不过暂时没心思做这个。小提示:点击任意标题旁边的“显示目录导航”,再点击右上角的图钉可以固定目录。约定:所有区间操作都是在闭区间上进行的。编译器要支持gnu++11标准基本框......
  • VS2022软件打包 生成和事后事件处理
    VS2022软件打包生成和事后事件处理 示例目标:将编译后的文件拷贝到新的文件,并重命名方便软件打包 生成前:删除目标目录:rd/s/q"$(SolutionDir)..\setup\$(ConfigurationName)\"生成后-拷贝重命名:copy"$(TargetPath)"$(TargetDir)JCZX-2024.exe"copy"$(TargetPat......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧002
    PDF格式公众号回复关键字:ZKYD002阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • 2024年3月26号题解
    EightII解题思路使用IDA*算法进行搜索,同时遍历所有高度中最小的,再保存dfs中的路径就可以了代码实现#include<sstream>#include<iostream>#include<algorithm>#include<cstring>#include<unordered_map>#include<queue>#include<set>usingnamespacestd;......
  • NKCTF2024
    myfirstcms搜索版本跳转到登录页面爆破出用户密码adminAdmin123Extensions>UserDefinedTags->AddUserDefinedTag一句话木马Run拿到flag全世界最简单的CTF拿到源码格式化constexpress=require('express');constbodyParser=require('body-parser');......
  • 更新和添加参数校验优化(2024-3-26)
    由于更新文章分类和添加文章分类,参数校验时,一个需要IDnotnull一个只是让id自动增长,所以当再次添加新的文章时会出现id为空的错误:这时候就要用到validation提供的分组校验:把校验项进行分类,在完成不同功能的时候,校验指定组中的校验项packagecom.di.bigevent.pojo;importco......
  • 20240326打卡
    第五周第一天第二天第三天第四天第五天第六天第七天所花时间20h4h代码量(行)877164博客量(篇)11知识点了解navigation路由配置,jetpackcompose组件运用,容器封装第一次结对作业开始今天主要由建民老师包分配的方式给我分了结......
  • 【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024
    问题描述在使用ServiceBus中,遇见了莫名奇妙,不知来源的访问,但是又不敢直接修改AccessKey(担心影响正常业务),所以想通过访问服务的客户端IP地址来分析,到底是那里的客户端在访问ServiceBus服务? 问题解答经过调查,可以通过开启AzureServiceBus的诊断日志来实现此目的。......
  • 联合省选 2024 题解
    魔法手杖考虑判定答案是否可以大于等于\(t\)。观察\(a_i\oplusx<t\)的情况,可以发现满足要求的\(x\)分为若干段:最高\(u\)位为\(a_i\oplust\)的最高\(u\)位;接下来这一位\(t\)为\(1\),且\(x\)取值为\(a_i\)这一位的取值;更低的位随意。这事实上相当于:我们往0......
  • [20240325]FORCE_MATCHING_SIGNATURE与DML.txt
    [20240325]FORCE_MATCHING_SIGNATURE与DML.txt--//生产系统遇到1个FORCE_MATCHING_SIGNATURE重合的奇怪现象,一般情况都是相似的sql语句(没有使用绑定变量的sql语句),--//FORCE_MATCHING_SIGNATURE相同。--//实际上insert语句真实FORCE_MATCHING_SIGNATURE=0,但是在v$active_session......