华清 Qt day1 9月15

2023-09-15 20:41:06
.pro:
QT       += core gui
#引入QT所需要的核心库core,gui为图形开发相关类库
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#表示如果超过4.0版本会自动加上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 \
    mainwindow.cpp

#管理头文件
HEADERS += \
    mainwindow.h

#管理.ui文件
FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H  //头文件的定义格式

#include <QMainWindow>   //父类的头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }   //声明ui界面对应头文件的命名空间
QT_END_NAMESPACE

//MainWindow为自己定义的类,公共继承自QMainWindow
class MainWindow : public QMainWindow
{
    Q_OBJECT     //信号与槽的元对象,没有的话,不能使用信号与槽

public:
    //声明构造函数,并且带有一个默认参数
    MainWindow(QWidget *parent = nullptr);
    //析构函数的声明
    ~MainWindow();

private:
    Ui::MainWindow *ui;   //定义这个后,可以通过该指针调用UI界面上拖拽出来的组件
};
#endif // MAINWINDOW_H

源文件:
#include "mainwindow.h"
#include "ui_mainwindow.h"  //俩头文件

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)   //必须显性调用父类的有参构造
    , ui(new Ui::MainWindow)   //给自己定义的类中的成员申请空间,也就是那个UI指针
{
    ui->setupUi(this);   //调用UI里面的成员函数,给里面的组件实例化空间
}

MainWindow::~MainWindow()
{
    delete ui;     //释放申请的空间
}

main.cpp:
#include "mainwindow.h"

#include <QApplication>    //俩头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);   //使用应用程序类,实例化一个应用程序的对象

    MainWindow w;      //用自定义的类实例化一个对象
    w.show();    //调用实例化的对象,展示组件,该函数由父类提供,但也可以展示子类的组件

    return a.exec();   //阻塞作用,等待用户的操作,等待信号与槽,等待事件发生,防止直接结束程序
}
#include "first.h"

first::first(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(650,550);   //设置窗口尺寸
    this->setWindowTitle("原神");   //设置窗口标题
    this->setWindowIcon(QIcon("D:\\huaqin_c++\\yuansen.png")); //设置图标


    //创建一个标签栏,logo
    QLabel *l1 = new QLabel(" ",this);
    l1->resize(650,200);  //大小
    l1->setPixmap(QPixmap("D:\\huaqin_c++\\jiemian.png"));  //导入图片
    l1->setScaledContents(true);

    //创建一个标签栏,下半背景图
    QLabel *l4 = new QLabel("",this);
    l4->resize(650,345);    //大小
    l4->move(0,200);    //定位
    l4->setPixmap(QPixmap("D:\\huaqin_c++\\111.png"));  //导入图片
    l4->setScaledContents(true);
    l4->setWindowOpacity(0.8);   //透明度

    //创建一个标签栏,账号的图标
    QLabel *l2 = new QLabel(" ",this);
    l2->resize(50,50);   //大小
    l2->setPixmap(QPixmap("D:\\huaqin_c++\\zanhao.png")); //导入图片
    l2->setScaledContents(true);
    l2->move(170,250);    //定位
    l2->setWindowOpacity(0.2);   //透明度

    //创建一个标签栏,密码的图标
    QLabel *l3 = new QLabel(" ",this);
    l3->setPixmap(QPixmap("D:\\huaqin_c++\\passwd.jpg"));  //导入图片
    l3->resize(50,50);   //大小
    l3->setScaledContents(true);
    l3->move(170,320);     //定位
    l3->setWindowOpacity(0.2);   //透明度

    //账号的行编辑器
    QLineEdit *q1 = new QLineEdit(this);
    q1->resize(250,50);   //大小
    q1->move(250,250);   //定位
    q1->setPlaceholderText("账号");   //占位文本

    //密码的行编辑器
    QLineEdit *q2 = new QLineEdit(this);
    q2->resize(250,50);   //大小
    q2->move(250,320);   //定位
    q2->setPlaceholderText("密码");   //占位文本
    q2->setEchoMode(QLineEdit::Password);  //设置不回显
    q2->setMaxLength(8);    //设置可输入最大长度
    q2->setWindowOpacity(0.2);     //透明度

    //登录按钮
    QPushButton *b1 = new QPushButton(this);
    b1->setText("登录");    //按钮上的文本
    b1->resize(80,50);   //大小
    b1->move(250,400);   //定位
    b1->setIcon(QIcon("D:\\huaqin_c++\\login.png"));  //导入图片

    //取消按钮
    QPushButton *b2 = new QPushButton("取消",this);
    b2->resize(80,50);   //大小
    b2->move(420,400);   //定位
    b2->setIcon(QIcon("D:\\huaqin_c++\\cancel.png"));  //导入图片



}




first::~first(){}

面试题 - GitMind

在线思维导图 - GitMind

更多推荐

计算机竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录0前言1课题说明2效果展示3具体实现4关键代码实现5算法综合效果6最后0前言🔥优质竞赛项目系列,今天要分享的是🚩基于深度学习的数学公式识别算法实现该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:4分创新点:4分🧿更多资料,项目分享:h

【计算机网络】Tcp详解

文章目录前言Tcp协议段格式TCP的可靠性面向字节流应答机制超时重传流量控制滑动窗口(重要)拥塞控制延迟应答捎带应答标志位具体标志位三次握手四次挥手粘包问题TCP异常情况listen的第二个参数前言前面我们学习了传输层协议Udp,今天我们一起学习Tcp,Tcp比Udp复杂,但可靠,非常多的场景需要这种可靠。Tcp协议段

循环神经网络——上篇【深度学习】【PyTorch】【d2l】

文章目录6、循环神经网络6.1、序列模型6.1.1、序列模型6.1.2、条件概率建模6.1.2、代码实现6.2、文本预处理6.2.1、理论部分6.2.2、代码实现6.3、语言模型和数据集6、循环神经网络6.1、序列模型6.1.1、序列模型序列模型主要用于处理具有时序结构的数据,**时序数据是连续的,**随着时间的推移,

2023/9/17总结

VuedefineOptions为什么要使用defineOptions在有<scriptsetup>之前如果需要定义propsemit可以很容易的添加一个与setup平级的属性但是用了<scriptsetup>后就不能这样做了setup属性也就没有了,就不能添加与其平级的属性为了解决这个问题引入了defineProps

文件、预处理、位运算

10.2数据文件概述10.2.1ASCII文件与二进制文件ASCII文件就是“将需要保存到文件的信息使用ASCII字符表示,然后按照顺序将每个字符的ASCII码存储到文件中”。ASCII文件的优点是编码方式公开,可以被其它的文本编辑器打开;其缺点是效率比较低,信息冗余度高。二进制文件将数据在内存中的二进制形式原样存储到

十大排序算法及Java中的排序算法

文章目录一、简介二、时间复杂度三、非线性时间比较类排序冒泡排序(BubbleSort)排序过程代码实现步骤拆解演示复杂度选择排序(SelectionSort)排序过程代码实现步骤拆解演示复杂度插入排序(InsertionSort)排序过程代码实现步骤拆解演示复杂度二分插入排序(BinaryInsertionSort)代

数据可视化 -- ECharts 入门

文章目录引言1.ECharts的基本使用1.1ECharts的快速上手1.2相关配置讲解2.ECharts常用图表2.1图表1柱状图2.1.1柱状图的实现步骤2.1.2柱状图的常见效果2.1.3柱状图特点2.1.4通用配置2.2图表2折线图2.2.1折线图的实现步骤2.2.2折线图的常见效果2.2.3折线图的特点2.3

【iOS】单例模式

文章目录前言一、单例模式简介二、单例模式优缺点优点缺点三、模式介绍1.懒汉模式2.饿汉模式总结前言在最初进行OC的学习时笔者了解过单例模式的基本使用,现撰写博客加深对单例模式的理解一、单例模式简介单例模式是一种常见的设计模式,其主要目的是确保一个类只有一个实例,并提供全局访问点。这样就大大节省了我们的内存,防止一个实例

2023年7月京东平板电脑行业品牌销售排行榜(京东销售数据分析)

鲸参谋监测的京东平台7月份平板电脑市场销售数据已出炉!根据鲸参谋电商数据分析平台的相关数据显示,今年7月份,京东平台上平板电脑的销量为68万+,同比增长超过37%;销售额为22亿+,同比增长约54%。从价格上看,平板电脑的市场均价同比增长约12%。可以看到,与去年同期相比,今年7月平板电脑市场呈现出良好的增长态势。*数

Go语言高级特性解析与实践

1.并发模型与goroutineGo语言以其强大的并发模型而闻名,它的核心机制是goroutine。goroutine是一种轻量级线程,由Go运行时负责调度。我们可以通过go关键字创建goroutine,而不需要像传统的线程编程那样关注底层的线程管理。示例代码:packagemainimport("fmt""time"

蓝桥杯打卡第14天

文章目录最短路径最短路径一、最短路径OJ链接本题思路:本题是一道简单的图论题,用floyd算法还是比较简单的,因为代码很短,这里需要用一个backup用来保存未删除边时的情况。当走完一次floyd之后,拷贝给dist数组来进行删除边的处理。当然不拷贝回去直接用这个backup数组也是可以进行删边处理的。#include

热文推荐