C++学习9.28

1> 创建一个新项目,将默认提供的程序都注释上意义

por

QT       += core gui
#QT表示引入的类库   core:核心库例如IO操作在该库中    gui:图形化显示库
#如果要使用其他类库中的相关函数,就需要调用相关类库后,才能加以使用greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#QT版本超过4时,会自动加上widgetsCONFIG += c++11
#支持C++11的新特性# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0#用来实现项目工程的管理
#管理源文件
SOURCES += \main.cpp \widget.cpp#管理头文件
HEADERS += \widget.h#管理所有的ui文件
FORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target头文件
#ifndef WIDGET_H
#define WIDGET_H
//防止头文件重复包含#include <QWidget>//ui_mywnd.h中的命名空间的声明
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }      //将其他文件中的命名空间进行声明
QT_END_NAMESPACE//自定义的类的声明,公共继承自QWidget
//QWidget类中封装了有关图形化界面相关的操作
class Widget : public QWidget
{Q_OBJECT    //信号与槽的元对象,没有这个就没法办使用信号与槽public:Widget(QWidget *parent = nullptr);      //构造函数的声明,使用了默认参数构造~Widget();                  //虚函数private:Ui::Widget *ui;             //成员函数,指针
};
#endif // WIDGET_H源文件
#include "widget.h"
#include "ui_widget.h"//构造函数的定义
Widget::Widget(QWidget *parent): QWidget(parent)           //在子类初始化中调用父类的有参构造,来完成子类从父类中继承的成员的初始化, ui(new Ui::Widget)        //给自己类中的指针成员实例化空间
{ui->setupUi(this);          //将ui界面上的组件展示在this界面上
}Widget::~Widget()
{delete ui;              //释放ui界面申请的组件空间
}主函数
#include "widget.h"
//自定义头文件,该文件包含了图形化界面类#include <QApplication>
//包含应用程序的头文件int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;            //使用自定义的类无参构造一个界面对象w.show();           //调用对象的函数成员,将界面输出出来return a.exec();//a.out():使用应用程序类对象,调用应用程序的成员函数,保证界面不被关闭,轮询等待界面发生变化//等待用户操作界面上的组件//等待界面上的槽与信号的相应//等待事情处理机制的实现}

2> 使用代码的形式实现登录框

#include "widget.h"
#include <QDebug>
#include <QIcon>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent){//输出数据qDebug()<<"hellow";//更改窗口名字qDebug()<<"当前界面标题为:"<<this->windowType();this->setWindowTitle("My first window");//更改窗口图标this->setWindowIcon(QIcon("C:/Users/ASUS/Desktop/wenjian.png"));//设置窗口尺寸qDebug()<<"width:"<<this->width()<<"  height:"<<this->height();qDebug()<<"size :"<<this->size();this->setMaximumSize(800,600);this->setMinimumSize(QSize(400,300));this->resize(700,600);
//    this->setFixedSize((500,400));//标签组件(账号密码)QLabel *label1 = new QLabel(this);label1->setText("账号");label1->resize(40,40);label1->move(130,300);QLabel *label2 = new QLabel(this);label2->setText("密码");label2->resize(label1->size());
//    label2->move(label1->x(),label1->y()+width()+10-label2->y());label2->move(130,340);//行编辑(账号密码的输入)QLineEdit *line1 = new QLineEdit(this);line1->resize(300,30);line1->move(label1->x()+label1->width()+2,label1->y());QLineEdit *line2 = new QLineEdit(this);line2->resize(300,30);line2->move(label2->x()+label2->width()+2,label2->y());line2->clear();line2->setPlaceholderText("             请输入密码");line2->setEchoMode(QLineEdit::Password);//按钮(登录/退出)QPushButton *btn1 = new  QPushButton(this);btn1->setText("登录");btn1->resize(80,40);btn1->move(250,400);btn1->setStyleSheet("color:white;background-color:skyblue;border-radius:10px;");QPushButton *btn2 = new  QPushButton(this);btn2->setText("退出");btn2->resize(80,40);btn2->move(350,400);btn2->setStyleSheet("color:red;background-color:yellow;border-radius:10px;");//logoQLabel *lab = new QLabel(this);lab->resize(120,120);lab->setPixmap(QPixmap("C:/Users/ASUS/Desktop/新建文件夹/图/图.jpg"));lab->setScaledContents(true);lab->move(270,150);}Widget::~Widget()
{
}

3> 思维导图

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

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

相关文章

Postgresql源码(136)syscache/relcache 缓存及失效机制

相关 《Postgresql源码&#xff08;45&#xff09;SysCache内存结构与搜索流程分析》 0 总结速查 syscache&#xff1a;缓存系统表的行。通用数据结构&#xff0c;可以缓存一切数据&#xff08;hash dlist&#xff09;。可以分别缓存单行和多行查询。 syscache使用CatCache数…

SpringBoot3.X配置OAuth

背景 之前在学习OAuth2时&#xff0c;我就有一个疑惑&#xff0c;OAuth2中有太多的配置、服务类都标注了Deprecated&#xff0c;如下&#xff1a; 显然这些写法已经过时了&#xff0c;那么官方推荐的最新写法是什么样的呢&#xff1f;当时我没有深究这些&#xff0c;我以为我放…

Ansible-template模块动态生成特定文件

文章目录 一、Jinja2介绍什么是主要特性安装基本用法进阶特性总结 Jinja2与Ansible关系1. 模板引擎2. Ansible 的依赖3. 变量和模板4. 动态生成配置5. 社区和生态系统总结 二、Ansible如何使用Jinja2使用template模块Jinja2文件中使用判断和循环Jinja2文件中使用判断语法 Jinja…

onload_tcpdump命令抓包报错Onload stack [7,] already has tcpdump process

最近碰到Onload 不支持同时运行多个 tcpdump 进程的报错&#xff0c;实际上使用了ps查询当时系统中并没有tcpdump相关进程存在。需要重启服务器本机使用onload加速的相关进程后才能使用onload_tcpdump正常抓包&#xff0c;很奇怪&#xff0c;之前确实没遇到这样的问题&#xff…

C++友元和运算符重载

目录 一. 友元 friend 1.1 概念 1.2 友元函数 1.3 友元类 1.4 友元成员函数 二. 运算符重载 2.1 概念 2.2成员函数运算符重载 2.3 成员函数运算符重载 2.4 特殊运算符重载 2.4.1 赋值运算符重载 2.4.2 类型转换运算符重载 2.5 注意事项 三、std::string 字符串类…

MyBatis-Plus分页查询

在实际开发中&#xff0c;对于大量数据的查询&#xff0c;可以通过分页查询的方式来减少查询量和提高查询效率。在 MyBatis-Plus 中&#xff0c;分页查询可以通过使用 Page 对象和 IService 接口提供的分页方法来实现。MyBatis-Plus 的分页插件 PaginationInnerInterceptor 提供…

基于Spring框架的分层解耦详解

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;Java Web关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Java Web 三层架构&#xff1a; Java Web可以大致被分为三层架构&#xff1a;…

Win11 安装 PostgreSQL 数据库,两种方式详细步骤

文章目录 一、exe文件安装 &#xff08;推荐&#xff09;下载安装包1. 选择操作系统2. 跳转到EDB&#xff08;PostgreSQL 的安装包托管在 EDB上&#xff09;3. 选择版本点击下载按钮 安装1. 管理员打开安装包2. 选择安装目录3. 勾选安装项4. 设置数据存储目录5. 设置管理员密码…

【C++报错已解决】std::ios_base::floatfield

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

YOLOv8改进,YOLOv8主干网络替换为GhostNetV3(2024年华为提出的轻量化架构,全网首发),助力涨点

摘要 GhostNetV3 是由华为诺亚方舟实验室的团队发布的,于2024年4月发布。 摘要:紧凑型神经网络专为边缘设备上的应用设计,具备更快的推理速度,但性能相对适中。然而,紧凑型模型的训练策略目前借鉴自传统模型,这忽略了它们在模型容量上的差异,可能阻碍紧凑型模型的性能…

如何用ChatGPT制作一款手机游戏应用

有没有想过自己做一款手机游戏&#xff0c;并生成apk手机应用呢&#xff1f;有了人工智能&#xff0c;这一切就成为可能。今天&#xff0c;我们就使用ChatGPT来创建一个简单的井字棋游戏&#xff08;Tic-Tac-Toe&#xff09;&#xff0c;其实这个过程非常轻松且高效。 通过Cha…

从哪里下载高清解压视频素材?推荐五个优质素材资源网站

想制作吸引人的抖音小说推文&#xff0c;但不知道从哪里获取高清解压视频素材&#xff1f;今天就为大家推荐五个优秀的网站&#xff0c;帮助你轻松找到所需的素材&#xff0c;提升你的创作质量。 首先是蛙学网 作为国内顶级的短视频素材网站&#xff0c;蛙学网提供了丰富的4K高…

浅谈java异常[Exception]

一&#xff0e; 异常的定义 在《java编程思想》中这样定义 异常&#xff1a;阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制&#xff0c;但是要明确一点&#xff0c;决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误&#xf…

SpringBoot使用validation进行自参数校验

一&#xff1a;介绍 在 SpringBoot 项目开发中&#xff0c;很多与数据库交互的参数需要校验数据正确性。很多小伙伴会把参数判断写进代码里&#xff0c;但是这种写法往往会有低可读性以及多处使用的时候&#xff0c;需要变更验证规则时&#xff0c;不易于维护等缺点。今天给大家…

Java之多态

文章目录 1. 多态1.1 多态的概念 2. 方法的重写3. 向上转型3.13.2 发生向上转型的时机 4. 动态绑定和静态绑定5. 什么是多态5.15.2 多态的优缺点 6. 避免在构造方法中调用重写的方法7. 向下转型![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fd1fa83140d94f37ab3b88…

HTML+CSS 水滴登录页

文章目录 一、效果演示二、Code1.HTML2.CSS 三、实现思路拆分 一、效果演示 实现了一个水滴登录页的效果。页面包含一个水滴形状的登录框和两个按钮&#xff0c;登录框包括用户名、密码和登录按钮&#xff0c;按钮分别为忘记密码和注册。整个页面的设计非常有创意&#xff0c;采…

一些超好用的 GitHub 插件和技巧

聊聊我平时使用 GitHub 时学到的一些插件、技巧。 ‍ ‍ 浏览器插件 在我的另一篇博客 浏览器插件推荐 里提到过跟 GitHub 相关的一些插件&#xff0c;这里重复下&#xff1a; Sourcegraph&#xff1a;在线打开项目&#xff0c;方便阅读&#xff0c;将 GitHub 变得和 IDE …

【AI创作组】Matlab中进行符号计算

提示:代码一定要自己运行过才算数…… 1. 符号计算工具箱介绍 1.1 工具箱功能 MATLAB的符号计算工具箱,即Symbolic Math Toolbox,是一套强大的数学软件工具,它使得MATLAB具备了符号运算的能力。该工具箱提供了一系列函数,用于求解、绘制和操作符号数学方程。用户可以直接…

【Linux】修改用户名用户家目录

0、锁定旧用户登录 如果旧用户olduser正在运行中是无法操作的&#xff0c;需要先禁用用户登录&#xff0c;然后杀掉所有此用户的进程。 1. 使用 usermod 命令禁用用户 这将锁定用户账户&#xff0c;使其无法登录&#xff1a; sudo usermod -L olduser2. 停止用户的进程 如…

Woocommerce怎么分类显示产品?如何将Shopify的产品导入到Woocommerce?

WooCommerce作为WordPress的一个电子商务插件&#xff0c;功能强大、使用简洁&#xff0c;能够轻松集成到WordPress网站中&#xff0c;为用户提供了一个完整的在线商店解决方案&#xff0c;在国外还是挺受欢迎的。 Woocommerce怎么分类显示产品&#xff1f; 在Woocommerce中&a…