C++学习9.28

news2024/9/28 22:16:28

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

por

QT       += core gui
#QT表示引入的类库   core:核心库例如IO操作在该库中    gui:图形化显示库
#如果要使用其他类库中的相关函数,就需要调用相关类库后,才能加以使用

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#QT版本超过4时,会自动加上widgets


CONFIG += 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;");

    //logo
    QLabel *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.coloradmin.cn/o/2174929.html

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

相关文章

c++926

1.什么是虚函数&#xff1f;什么是纯虚函数&#xff1f; 虚函数&#xff1a;被virtual关键字修饰的成员函数&#xff0c;用于实现多态性&#xff0c;通过基类访问派生类的函数。纯虚函数&#xff1a;在虚函数后面添加0&#xff0c;只有声明而没有实现&#xff0c;需要派生类提…

天龙八部怀旧单机微改人面桃花+安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;天龙八部怀旧单机微改人面桃花。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xf…

图说数集相等定义表明“R各元x的对应x+0.0001的全体=R“是几百年重大错误

黄小宁 设集A&#xff5b;x&#xff5d;表A各元均由x代表&#xff0c;&#xff5b;x&#xff5d;中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标故x∈R变为实数yx1的几何意义可是&#xff1a;一维空间“管道”g内R轴上的质点x∈R(x是点的坐标)沿“管道”g平移变为点y…

红队信息搜集扫描使用

红队信息搜集扫描使用 红队行动中需要工具化一些常用攻击&#xff0c;所以学习一下 nmap 等的常规使用&#xff0c;提供灵感 nmap 帮助 nmap --help主机扫描 Scan and no port scan&#xff08;扫描但不端口扫描&#xff09;。-sn 在老版本中是 -sP&#xff0c;P的含义是 P…

视频美颜SDK与直播美颜工具API是什么?计算机视觉技术详解

今天&#xff0c;小编将深入探讨视频美颜SDK与直播美颜工具API的概念及其背后的计算机视觉技术。 一、视频美颜SDK的概念 视频美颜SDK是一套用于开发实时美颜效果的工具集&#xff0c;开发者可以利用它在视频流中实现面部特征的优化。这些SDK通常提供了一系列功能&#xff0c…

.NET 红队武器库和资源集合 (第38期)

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

计算机网络自顶向下(1)---网络基础

目录 1.网络的分类 2.网络协议 3.网络分层结构 1.OSI七层模型 2.TCP/IP四层模型 3.网络与OS的关系 4.网络传输基本流程 1.协议报头 5.网络中的地址管理 1.IP地址 2.端口号 6.传输层协议 1.TCP协议 2.UDP协议 3.网络字节序 7.socket 1.网络的分类 局域网&…

excel-VBA知识点记录

1、计算机硬件的组成部分 内存&#xff0c;一旦断电&#xff0c;存储在里面的数据就消失了&#xff0c;而硬盘是永久存储数据的&#xff0c;所以刚开始我们在文件里面编辑没有按保存的时候&#xff0c;数据是在内存里面的&#xff0c;一旦断电数据就没了&#xff0c;但我们点了…

大语言模型知识点分享

1 目前主流的开源模型体系有哪些&#xff1f; Prefix Decoder 系列模型 核心点&#xff1a; 输入采用双向注意力机制&#xff0c;输出为单向注意力。双向注意力意味着输入的每个部分都可以关注到输入的所有其他部分&#xff0c;这在理解上下文时具有很强的优势。 代表模型&a…

六级翻译 高分笔记

第一节 句子的拆分与重组 核心原则&#xff1a;拆主干&#xff0c;补修饰 一、句子的拆分与重组 1.青藏铁路是世界最高最长的高原铁路。&#xff08;“的”字前面所有去掉&#xff0c;就是句子主干&#xff09; The Qinghai-Tibet Railway is the highest and longest plate…

css 数字比汉字要靠上

这个问题通常是由于数字字体的下排的问题造成的&#xff0c;也就是数字的底部边缘位置比汉字的顶部边缘位置更靠下。为了解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 使用CSS的vertical-align属性来调整对齐方式。例如&#xff0c;可以将数字的对齐方式设置为to…

数组的练习

1.使用函数的递归方法&#xff0c;输出给定字符串的逆序&#xff0c;如"abcdefg"&#xff0c;输出为“gfedcba”. 方法一&#xff1a;首先不采用递归的方法&#xff0c;如何完成上述要求 #include<stdio.h> #include<string.h> int main() {char arr[]…

3.数据结构与算法-基本概念和术语

数据、数据元素、数据项和数据对象 数据 数据元素 学生表-记录 数-节点 图&#xff1a;顶点 数据项 数据对象 数据对象与数据元素的关系 数据结构 数据结构的三个部分 逻辑结构的种类 存储结构分类 顺序存储结构 链式存储结构 索引存储结构 散列存储结构 数据类型和抽象数据类…

Linux中的文件缓冲区

目录 使用 dup2 系统调用 为命令行解释器添加重定向功能 理解缓冲区问题 缓存区的刷新策略 FILE的本质 尝试封装C语言的FILE 小共识&#xff1a; cd->当前路径->当前进程的工作路径->工作路径可以被修改->每个进程都有当前路径->故cd改的是子进程的路径-…

算力共享平台的控制流程,业务流程

目录 控制流程 业务流程 在提供的计算机网络系统结构示意图和描述中,我们可以区分出控制流程和业务流程的组成部分。 控制流程 控制流程主要涉及系统内部的管理、调度和监控操作,以确保系统能够按照预定的规则和策略运行。在这个例子中,控制流程可能包括但不限于以下部分…

K8S真正删除pod

假设k8s的某个命名空间如&#xff08;default&#xff09;有一个运行nginx 的pod&#xff0c;而这个pod是以kubectl run pod命令运行的 1.错误示范&#xff1a; kubectl delete pod nginx-2756690723-hllbp 结果显示这个pod 是删除了&#xff0c;但k8s很快自动创建新的pod,但是…

【C++算法】5.双指针_乘最多水的容器

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解&#xff1a; 题目链接&#xff1a; 11.盛最多水的容器 题目描述&#xff1a; 解法 7x749 解法一&#xff1a;暴力枚举 输入&#xff1a;[1&#xff0c;8&#xff0c;6&#xff0c;2&#xf…

大厂AI必备数据结构与算法——链表(三)详细文档

冲冲冲&#xff01;开干 神马&#xff01;神马&#xff01;神马&#xff0c;一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程&#xff1f;还那么详细&#xff1f;&#xff1f;真的假的&#xff1f; 那么好&#xff0c;胡广告诉你是假的&#xff0c;哈哈哈哈哈哈哈哈哈…

付费计量系统通用处理类(下)

普通处理类如下定义&#xff1a; 10.11 Class 11: Customer _Delivery process 用户交付过程 The processes associated with transferring delivered electrical energy to the customer’s load circuit. 是关于将传输的电能传递到用户的负荷电路。 Examples…

告别熬夜,追求高效写作:芝士AI写作,效率与质量的双重提升

好的工具&#xff0c;真得能够让我们的学习事半功倍&#xff0c;有了芝士AI&#xff08;paperzz&#xff09;工具的加持&#xff0c;妈妈再也不用担心我熬夜写论文了 。 芝士AI官网&#xff1a;https://www.paperzz.cn/ 不愧是由985硕博团队开发的AI大模型功软件&#xff0c;…