【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.mzph.cn/web/8866.shtml

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

相关文章

nginx代理原理(端口复用)探究

前言&#xff1a;对于一些常用的插件&#xff0c;我们应该学会如何使用。同时&#xff0c;其实现原理也要进行深究&#xff0c;可以为其他的项目开发做借鉴。 探究方案&#xff1a; 一、发布两个不同的服务&#xff0c;这两个服务的端口不致 二、配置nginx&#xff0c;让这两…

C语言——文件描述符、系统调用操作文件

文件描述符 在Unix-like操作系统中&#xff0c;文件描述符&#xff08;file descriptor&#xff09;是一个用于标识打开文件或I/O设备的整数值。它是对底层文件系统的抽象&#xff0c;用于在应用程序和操作系统之间传递文件信息。 文件描述符是一个非负整数&#xff0c;通常是…

透明桌面便签便笺怎么设置 透明的便签在哪

在繁忙的工作与生活中&#xff0c;我一直渴望找到一种能够轻松管理待办事项的方式。最近&#xff0c;我发现了一个让我爱不释手的工具。它不仅有着出色的提醒功能&#xff0c;更独特的是&#xff0c;它提供了透明便签的设计。 那么&#xff0c;透明便签的好处究竟有哪些呢&…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

EPSON推出可定制晶振技术支持

什么叫做定制晶振呢?定制晶振又可以称为订制&#xff0c;订做晶振&#xff0c;爱普生可编程晶振可在0.67MHz~166MHz频率范围内实现任意频率烧录订制。定制频率晶振是基于PLL技术的一次频率烧录的振荡器&#xff0c;在没有温补的情况下也能够产生稳定的频率输出。单CMOS频率输出…

什么才是正确的领域驱动实现架构?

作为一种系统建模方法&#xff0c;DDD同样涉及系统的体系架构设计。区别于分布式、事件驱动、消息总线等架构设计方法&#xff0c;DDD中的架构设计关注前面各章所介绍的聚合、实体、值对象、领域事件、应用服务以及资源库之间的交互方式和风格&#xff0c;并在设计思想上有其独…

基于Go编写一个人员管理系统案例

代码结构 人员结构体 package entity// 结构体&#xff1a;人 type Person struct {Id intName stringSex stringAge int }// 构造函数 func NewPerson(id int, name, sex string, age int) *Person {return &Person{Id: id,Name: name,Sex: sex,Age: age,} }人员…

【AutoGPT】踩坑帖(follow李鱼皮)

本文写于2024年5月7日 参考视频&#xff1a;AutoGPT傻瓜式使用教程真实体验&#xff01; 对应文章&#xff1a;炸裂的AutoGPT&#xff0c;帮我做了个网站&#xff01; 平台&#xff1a;GitPod 云托管服务 原仓库已经改动很大&#xff0c;应使用的Repo为&#xff1a;Auto-GPT-ZH…

人工智能将改变科研?从胰腺癌早筛到新药研发

去年底英国《自然》杂志刊文预测的2024年十大科学进展中&#xff0c;人工智能的进步和ChatGPT人工智能占据前两位。那么&#xff0c;人工智能对于科学而言&#xff0c;它的哪些成果将带来有益的发展&#xff1f;今天我们请知名科普作者张田勘来聊聊这个话题。 &#xff08;1&am…

C语言 | Leetcode C语言题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; char* minWindow(char* s, char* t) {int tLen strlen(t);int hash[256] { 0 };for (int i 0; i < tLen; i)hash[t[i]];for (int i 0; i < 256; i) {if (0 hash[i])hash[i] INT_MIN;}int left, right, count, start, minLen, s…

VBA 创建透视表,录制宏,自动化报表

目录 一. 数据准备二. 需求三. 准备好报表模板四. 执行统计操作&#xff0c;录制宏4.1 根据数据源创建透视表4.2 填充数据到报表4.3 结束宏录制 五. 执行录制好的宏&#xff0c;自动化报表 一. 数据准备 ⏹数据源1 姓名学科成绩丁志敏语文91李平平语文81王刚语文64张伊语文50…

城市运行管理服务平台架构

城市运行管理服务平台是一种集成化的信息系统&#xff0c;其根本宗旨在于推动城市的高效运作与精细管理&#xff0c;进而提升广大市民的生活质量&#xff0c;并致力于实现城市的长期、稳定与可持续发展。 一、平台架构 1、核心优势 2、7个应用系统 &#xff08;1&#xff09;…

C++聊天服务器数据库创建

创建数据库chat show databases&#xff1a;展示所有的数据库 create database chat&#xff1a;创建一个数据库chat use chat&#xff1a;使用数据库 创建表User、Friend、AllGroup、GroupUser、OfflineMessage 表User包含&#xff1a;用户id、用户名、用户密码、当前登录…

78.子集

1.题目 子集 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/subsets/ 2.思路 3.C代码实现 class Solution { public:vector<vector<int>> ret;vector<int> path;vector<vector<int>> subsets(vector<int>& …

MySQL: Buffer Pool概念整理

一. 简介 MySQL中的Buffer Pool是InnoDB存储引擎用来缓存表数据和索引的内存区域。这是InnoDB性能优化中最关键的部分之一。通过在内存中缓存这些数据&#xff0c;InnoDB可以极大减少对磁盘I/O的需求&#xff0c;因为从内存中读取数据远比从磁盘读取要快得多。因此&#xff0c…

项目管理在软件工程中的实践方法

软件工程是一个复杂的过程&#xff0c;涉及到需求分析、设计、编码、测试和维护等多个阶段。有效的项目管理对于确保软件项目成功至关重要。以下是结合附件内容&#xff0c;关于项目管理在软件工程中实践的一些方法。 1. 明确项目愿景和目标 在项目启动之初&#xff0c;项目经…

淘宝电商商家ERP订单接口接入指南:对接ERP与淘宝系统的数据桥梁

最近几年&#xff0c;电商发展如火如荼&#xff0c;一方面互联网企业在推互联网 和O2O&#xff0c;同时很多传统企业也在积极互联网&#xff0c;通过各种电商平台拓展销售渠道&#xff0c;有些还同时建有自建的电商平台。这些电商平台通常下单&#xff0c;结算&#xff0c;促销…

Cheetah3D for Mac - 轻松打造专业级3D作品

对于追求专业级3D作品的设计师来说&#xff0c;Cheetah3D for Mac无疑是一款不可多得的工具。 这款软件拥有强大的建模、渲染和动画功能&#xff0c;能够满足您在3D设计方面的各种需求。通过简单的操作&#xff0c;您可以轻松构建出复杂的3D模型&#xff0c;并为其添加逼真的材…

Gitlab自动化测试的配置

1. 代码分支命名规范检测 Setting → Repository → Push rules → Branch name&#xff0c;添加分支命名规范对应的正则表达式。如&#xff1a; ^(Release|Tag|Develop|Feature)_._.|Main$ 表示分支名只能以以下关键字之一开头&#xff1a;Release、Tag、Develop和Feature。 …

使用C++ __builtin_expect优化程序性能后,程序体积不改变原因

结论 使用__builtin_expect优化程序性能&#xff0c;开启-O3的情况下&#xff0c;确实程序的体积可能不改变&#xff0c;但是还是会产生优化效果。 测试代码 不使用__builtin_expect #include <iostream>void fun(int a, int b) {// 不使用__builtin_expectif (a <…