【C++】-【QT】类库使用-001

1主窗口创建

1.1【makefile】配置

1 源码

QT += widgetsSOURCES += main.cpp

2 图示
在这里插入图片描述

1.2源码

1 源码

#include <QWidget>
#include <QApplication>using namespace std;int main(int argc,char *argv[])
{QApplication a(argc,argv);QWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

1.3程序执行结果

在这里插入图片描述

2添加控件1

2.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget(){btn1.show();}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

2.2程序执行结果

主窗口+按钮

在这里插入图片描述

3建立父子关系1

建立主窗口与控件1的父子关系

3.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(this){}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

3.2程序执行结果

控件1与主窗口建立关系
在这里插入图片描述

4移动控件1

4.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(this){btn1.move(100,300);}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

4.2程序执行结果

在这里插入图片描述

5控件1添加文本

5.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1("hello",this){btn1.move(100,300);this->resize(300,400);//设置主窗口大小}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

5.2程序执行结果

在这里插入图片描述

6添加控件2

6.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){btn1->move(100,300);lineEdit1->move(200,300);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

6.2程序执行结果

在这里插入图片描述

7布局管理器

7.1源码

1 源码

#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){/* 1.1 创建水平布局管理器*/QHBoxLayout *hlayout1=new QHBoxLayout;/* 1.2 利用水平布局管理器管理窗口控件*/hlayout1->addWidget(btn1);hlayout1->addWidget(lineEdit1);/*创建垂直布局管理器*/QVBoxLayout *vlayout=new QVBoxLayout;/*利用垂直布局管理器管理窗口控件*/vlayout->addLayout(hlayout1);/* 1.3 设置布局管理器*/this->setLayout(vlayout);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

源码封装

在这里插入图片描述

#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){setupUi();}void setupUi(){/* 1.1 创建水平布局管理器*/QHBoxLayout *hlayout1=new QHBoxLayout;/* 1.2 利用水平布局管理器管理窗口控件*/hlayout1->addWidget(btn1);hlayout1->addWidget(lineEdit1);/*创建垂直布局管理器*/QVBoxLayout *vlayout=new QVBoxLayout;/*利用垂直布局管理器管理窗口控件*/vlayout->addLayout(hlayout1);/* 1.3 设置布局管理器*/this->setLayout(vlayout);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:*      (1)含义: Qt应用程序类*      (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础*      (3)成员函数-处理应用程序全局事件:*          1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。*          2)【quit();】: 退出应用程序。* 2 【QWidget】类:*      (1)含义: 基础窗口组件类,是窗口类的基类。*      (2)作用: 创建界面*      (3)继承关系:*          1)父类:【QObject】+【QPaintDevice】*          2)子类:【QMainWindow】【QDialog】*      (4)成员函数-:*          1)【show();】: 显示窗口对象。*/

2 图示
在这里插入图片描述

7.2程序执行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/322417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8改进 | 独家创新篇 | 利用MobileNetV4的UIB模块二次创新C2f(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用MobileNetV4的UIB模块二次创新C2f&#xff0c;其中UIB模块来自2024.5月发布的MobileNetV4网络&#xff0c;其是一种高度优化的神经网络架构&#xff0c;专为移动设备设计。它最新的改动总结主要有两点&#xff0c;采用了通用反向瓶…

C语言:指针(1)

1. 内存和地址 内存划分为⼀个个的内存单元&#xff0c;每个内存单元的⼤⼩取1个字节。 计算机中常⻅的单位&#xff08;补充&#xff09;&#xff1a; ⼀个⽐特位可以存储⼀个2进制的位1或者0 C语⾔中给地址起了新的名字叫&#xff1a;指针。 内存单元的编号地址指针。 1.…

介绍 ffmpeg.dll 文件以及ffmpeg.dll丢失怎么办的五种修复方法

ffmpeg.dll 是一个动态链接库文件&#xff0c;属于 FFmpeg运行库。它在计算机上扮演着非常重要的角色&#xff0c;因为它提供了许多应用程序和操作系统所需的功能和组件。当 ffmpeg.dll 文件丢失或损坏时&#xff0c;可能会导致程序无法正常运行&#xff0c;甚至系统崩溃。下面…

树莓派4b红外检测

1.红外检测连接图 2.红外检测工作原理 红外传感器的工作原理类似于物体检测传感器。该传感器包括一个红外LED和一个红外光电二极管&#xff0c;因此通过将这两者结合起来&#xff0c;可以形成一个光耦合器。 红外LED是一种发射红外辐射的发射器。该LED看起来与标准LED相似&a…

嫦娥六号近月制动成功,建立月球基地又迈进一步!

嫦娥六号探测器在近月制动的关键时刻&#xff0c;北京航天飞行控制中心内弥漫着紧张而庄重的氛围。每一个航天科技工作者都屏息以待&#xff0c;他们的眼神中充满了期待与自豪。随着一系列精妙绝伦的指令如同琴弦上的音符般流畅地奏响&#xff0c;嫦娥六号探测器在万众瞩目的目…

排序算法(Java版)

目录 1、直接插入排序2、希尔排序3、直接选择排序4、堆排序5、冒泡排序6、快速排序6.1 递归实现6.2 非递归实现 7、归并排序7.1 递归实现7.2 非递归实现 8、性能分析 今天我们学习一种算法&#xff1a;排序算法&#xff08;本文的排序默认是从小到大顺序&#xff09;&#xff0…

红帽为 Red Hat OpenShift AI 扩大与 Elasticsearch 向量数据库的合作

作者&#xff1a;来自 Elastic Aditya Tripathi 红帽和 Elastic 今天宣布开展合作&#xff0c;以便在 Red Hat OpenShift AI 上集成 Elasticsearch 向量数据库。 Red Hat OpenShift 用户现在可以通过红帽生态系统目录实施 Elasticsearch 以进行向量搜索和检索增强生成 (RAG) 应…

Flink DataSink介绍

介绍 Flink DataSink是Apache Flink框架中的一个重要组件&#xff0c;它定义了数据流经过一系列处理后最终的输出位置。以下是关于Flink DataSink的详细介绍&#xff1a; 概念&#xff1a;DataSink主要负责对经过Flink处理后的流进行一系列操作&#xff0c;并将计算后的数据结…

Hive Transaction事务表(含实现原理)

Hive Transaction事务表 在Hive中&#xff0c;事务表&#xff08;Transactional Tables&#xff09;允许用户执行事务性操作&#xff0c;包括ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;特性。事务表是在Hive 0.14版本引入的&#xff0c;并且在后续版本中不断…

wangEditor富文本编辑器与layui图片上传

记录&#xff1a;js 显示默认的wangEditor富文本编辑器内容和图片 <style>body {background-color: #ffffff;}.layui-form-select dl{z-index:100000;} </style> <div class"layui-form layuimini-form"><div class"layui-form-item"…

【Android项目】“追茶到底”项目介绍

没有多的介绍&#xff0c;这里只是展示我的项目效果&#xff0c;后面会给出具体的代码实现。 一、用户模块 1、注册&#xff08;第一次登陆的话需要先注册账号&#xff09; 2、登陆&#xff08;具有记住最近登录用户功能&#xff09; 二、点单模块 1、展示饮品列表 2、双向联动…

缓存雪崩、击穿、击穿

缓存雪崩&#xff1a; 就是大量数据在同一时间过期或者redis宕机时&#xff0c;这时候有大量的用户请求无法在redis中进行处理&#xff0c;而去直接访问数据库&#xff0c;从而导致数据库压力剧增&#xff0c;甚至有可能导致数据库宕机&#xff0c;从而引发的一些列连锁反应&a…

【vue+vue-treeselect】根据指定字段,如isLeaf(是否末级节点),设置只允许末级节点可以选

1、当项目有特殊要求&#xff0c;必须根据某个字段的值去判断&#xff0c;是否节点可以选&#xff0c;即使已经是末级节点了&#xff0c;还是需要根据字段判断是否禁用 &#xff08;1&#xff09; :flat"true"一定要设置 (2)获取数据源的时候&#xff0c;设置下禁用…

【进程间通信】共享内存

文章目录 共享内存常用的接口指令利用命名管道实现同步机制总结 System V的IPC资源的生命周期都是随内核的。 共享内存 共享内存也是为了进程间进行通信的&#xff0c;因为进程间具有独立性&#xff0c;通信的本质是两个不同的进程看到同一份公共资源&#xff0c;所以共享内存…

【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】

HTMLCSS家乡河南主题网页目录 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、页面效果Page1 首页Page2 开封游玩Page 3 开封美食Page4 留言 &#x1f308; 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 &#x1f40b;四…

centos8.5 安装 redis 7.2.4 详细步骤

1 下载Index of /releases/ (redis.io) 通过xftp等方式上传到服务器&#xff0c;安装依赖包 yum install gcc gcc-c make tcl -y [rootlocalhost software]# ll total 3308 -rw-r--r--. 1 root root 3386861 May 3 21:56 redis-7.2.4.tar.gz [rootlocalhost software]# ll…

CoPilot 产品体验:提升 OpenNJet 的控制管理和服务提供能力

文章目录 前言系统架构介绍CoPilot 配置CoPilot 插件规范 体验 CoPilot 实例CoPilot: Broker 实例CoPilot: Ctrl 实例 开发其他语言编写的 CoPilot目标主要思路具体实现执行 go 程序代码 功能扩展总结 前言 CoPilot 是 OpenNJet 的一个重要组成部分&#xff0c;它在 Master-Wo…

O2OA开发平台前端源码级二次开发(Vue3,React)

在使用O2OA进行项目定制化开发时&#xff0c;我们可以开发新的前端组件&#xff08;x_component&#xff09;以扩展O2OA来实现更多的业务。这种新增前端组件或者前端业务的开发通常会配合后端自定义应用实现的服务来完成系统内数据的交互。在当系统默认的界面不符合系统UI/UE设…

C++之大数运算

溪云初起日沉阁 山雨欲来风满楼 契子✨ 我们知道数据类型皆有范围&#xff0c;一旦超出了这个范围就会造成溢出问题 今天说说我们常见的数据类型范围&#xff1a; 我们平时写代码也会遇到数据类型范围溢出问题&#xff1a; 比如 ~ 我们之前写的学生管理系统在用 int类型 填写…

MySQL日志机制【undo log、redo log、binlog 】

前言 SQL执行流程图文分析&#xff1a;从连接到执行的全貌_一条 sql 执行的全流程?-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞20次&#xff0c;收藏12次。本文探讨 MySQL 执行一条 SQL 查询语句的详细流程&#xff0c;从连接器开始&#xff0c;逐步介绍了查询缓存、解析 S…