当前位置: 首页 > news >正文

【QT】构建项目

文章目录

  • 创建项目
  • 代码编写
  • 实现一个简单的Windows运行

创建项目

打开QT creator后会显示这样一个界面
在这里插入图片描述
通过点击箭头指的创建项目来进行第一个项目的创建

然后接下来就会出现这样的界面
在这里插入图片描述
我们这里直接使用默认的选项,直接点“选择”

这里可以修改路径和项目名称,可以进行自定义
在这里插入图片描述
下面这里就是需要进行选择了,对于Qt用户,qmake是当前使用最广泛的构建系统。CMake是第二名,并且越来越受欢迎。第三名是Qbs,采用率明显降低。

接下来就需要选择基类了,由于这里只是做一个小项目,因此选择QWidget
在这里插入图片描述

下面的这一步就是涉及到国际化了,如果需要翻译成其他语言可以自行选择,但这里用不到,因此不进行选择
在这里插入图片描述

这里就是进行选择编译器了,如果想用Visual Studio进行编写代码的话可以使用MSVC,这里暂时不进行介绍,而是使用默认编译器
在这里插入图片描述

最后如果想要使用Git等进行版本控制的话可以自行选择,然后就大功告成了
在这里插入图片描述

代码编写

创建好项目后默认就是这个样子的,我们可以尝试运行一下看看结果
在这里插入图片描述
可以看到就是个一片空白的没有任何东西的窗口
在这里插入图片描述
打开这里的main.cpp文件,下面解释一下这里的代码
在这里插入图片描述

QApplication a(argc, argv);
对于使用了Qt的任何GUI程序来说,不管何时何地有多少个Window,但只有一个QApplication对象,如果不是基于QWidget的程序,相应的则使用QGuiApplication,后者不依赖于Widget特有的库。

Widget w;
widget翻译过来就是小部件的意思,这里创建一个Widget对象

w.show()
展示窗口,由于没有进行任何设置,因此为空

实现一个简单的Windows运行

在Windows下按下Windows键+R可以打开运行
在这里插入图片描述
这里有三种类型:文本、编辑栏和按钮
首先包含一下头文件

#include "widget.h"
#include<QHBoxLayout>//H代表Horizonal,水平布局
#include<QVBoxLayout>//V代表Vertical,垂直布局
#include <QApplication>
#include<QPushButton>//添加按钮所需要的头文件
#include<QLayout>//添加布局所需要的头文件
#include<QLineEdit>//添加行编辑所需要的头文件
#include<QLabel>//添加文本所需要的头文件

首先把这两个文本所需要的对象创建一下

QLabel* infoLabel=new QLabel;//创建一个描述文本
QLabel* openLabel=new QLabel;//在输入命令的编辑栏旁边的打开文本

然后再把编辑栏创建一下

QLineEdit* cmdLineEdit=new QLineEdit;//创建一个编辑栏

接下来把三个按钮创建一下

//创建按钮
QPushButton* commitButton=new QPushButton;
QPushButton* cancelButton=new QPushButton;
QPushButton* browseButton=new QPushButton;

所需的对象都创建完成后更改所要显示的内容,需要用到setText()函数

//为所有标签更改显示的内容
infoLabel->setText("Input cmd Line");
openLabel->setText("Open");
commitButton->setText("Commit");
cancelButton->setText("Cancel");
browseButton->setText("Browse");

为了不让这下标签杂乱无章,将其进行对齐
可以看到按钮之间还有openLabel和cmdLineEdit之间都是水平对齐的,但它们不能全部对齐成同一行,因此创建两个对齐对象
首先创建一个cmdLayout对象来对openLabel和cmdLineEdit进行管理,通过使用addWidget函数将这两个对象添加到同一行中

QHBoxLayout* cmdLayout=new QHBoxLayout;
cmdLayout->addWidget(openLabel);
cmdLayout->addWidget(cmdLineEdit);

然后对按钮进行相同的操作

QHBoxLayout* buttonLayout=new QHBoxLayout;
buttonLayout->addWidget(commitButton);
buttonLayout->addWidget(cancelButton);
buttonLayout->addWidget(browseButton);

可以看到剩余的infoLabel和前两个已经绑定完成的对象之间是垂直的关系
在这里插入图片描述
因此创建一个QVBoxLayout的对象mainLayout,同样也是用addWidget函数将其绑定在一起

到这里界面布局就完成了,通过setLayout函数将mainLayout函数作为要显示的布局,还可以通过setWindowTitle对窗口名进行重命名

QWidget w;
    w.setLayout(mainLayout);
    w.setWindowTitle("Run");
    w.show();

到这里整个界面就可以成功显示出来了
在这里插入图片描述

END

http://www.dtcms.com/a/108072.html

相关文章:

  • DIY搭建网站(学术个人介绍主页)
  • 2025年大模型与Transformer架构:重塑AI未来的科技革命
  • docker的入门以及使用
  • unity运行中场景指定模型回放功能(模型是地形并且可以加载预制体进行回放)
  • Java面试黄金宝典30
  • 无需安装Office进行 Word、Excel操作的微软开发库
  • MySQL 锁机制:数据库的交通管制系统
  • 2023年12月电子学会青少年软件编程图形化三级考级真题—打砖块游戏
  • 用Rust和WebAssembly打造轻量级前端加密工具
  • RNN模型与NLP应用——(7/9)机器翻译与Seq2Seq模型
  • SOME/IP-SD -- 协议英文原文讲解9(ERROR处理)
  • GitHub二次验证登录2FA(Enable two-factor authentication )
  • 手搓多模态-01 对比损失的优化
  • python网络爬虫开发实战之数据的存储
  • spring-security原理与应用系列:HttpSecurity.filters
  • 【算法中的数学】欧拉筛埃氏筛
  • 游戏引擎学习第194天
  • SpringBoot+Vue 中 WebSocket 的使用
  • LLM大模型教程——什么是AI大模型
  • 企业linux常用服务搭建
  • 数据结构每日一题day10(链表)★★★★★
  • Ansible(3)——主机清单与配置文件
  • 【高项】信息系统项目管理师(十四)配置与变更管理【3分】
  • unity点击button后不松开通过拖拽显示模型松开后模型实例化
  • 【工业场景】用YOLOv12实现饮料类别识别
  • 基于神经网络的肾脏疾病预测模型
  • 单元测试原则之——不要模拟不属于你的类型
  • 亚马逊云科技赋能英矽智能,打破新药研发“双十”定律
  • VASP计算过渡态(CI-NEB)初始结构生成脚本汇总
  • 【MySQL篇】limit深度分页性能:从原理理解小偏移量limit 1,200 vs 百万级偏移量limit 1000000,200的差异