【无标题】

目录

1、实现图形化界面

2、将工程文件进行注释


1、实现图形化界面

cpp 复制代码
#include "mywnd.h"

Mywnd::Mywnd(QWidget *parent)
    : QMainWindow(parent)
{
    this->setFixedSize(800,600);     //设置固定尺寸
    this->setWindowTitle("Widget");     //设置窗口标题
    this->setWindowIcon(QIcon("D:\\qt23062\\day8\\qq.png"));    //设置窗口图标

    //实例化标签
    QLabel* lab1=new QLabel(this);
    lab1->setPixmap(QPixmap("D:\\qt23062\\day8\\logo.png"));     //设置图片
    lab1->setScaledContents(true);     //设置图片自动适应大小
    lab1->resize(800,270);           //重新设置尺寸
    //标签2
    QLabel* lab2=new QLabel(this);
    lab2->setPixmap(QPixmap("D:\\qt23062\\day8\\userName"));     //设置图片
    lab2->setScaledContents(true);     //设置图片自动适应大小
    lab2->resize(60,60);           //重新设置尺寸
    lab2->move(200,300);

    //标签3
    QLabel* lab3=new QLabel(this);
    lab3->setPixmap(QPixmap("D:\\qt23062\\day8\\passwd"));     //设置图片
    lab3->setScaledContents(true);     //设置图片自动适应大小
    lab3->resize(60,60);           //重新设置尺寸
    lab3->move(lab2->x(),lab2->y()+90);

    //行编辑器
    QLineEdit* edit1=new QLineEdit("admin",this);
    edit1->move(lab2->x()+75,lab2->y());
    edit1->resize(360,60);

    QLineEdit* edit2=new QLineEdit("123456",this);
    edit2->move(lab3->x()+75,lab3->y());
    edit2->resize(360,60);
    edit2->setEchoMode(QLineEdit::Password);        //设置回显模式

    //按钮
    QPushButton *btn1=new QPushButton(QIcon("D:\\qt23062\\day8\\login.png"),"登录",this);
    btn1->move(edit2->x()+50,edit2->y()+100);
    btn1->resize(110,70);           //重新设置尺寸

    QFont font = btn1->font();
    font.setPointSize(16);  // 设置字体大小为16像素
    btn1->setFont(font);

    QPushButton *btn2=new QPushButton(QIcon("D:\\qt23062\\day8\\cancel.png"),"取消",this);
    btn2->move(btn1->x()+150,btn1->y());
    btn2->resize(110,70);           //重新设置尺寸

    QFont font1 = btn2->font();
    font1.setPointSize(16);  // 设置字体大小为16像素
    btn2->setFont(font1);


}

Mywnd::~Mywnd()
{
}

2、将工程文件进行注释

cpp 复制代码
QT       += core gui network
#引入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 \
    mywnd.cpp
#对头文件进行管理
HEADERS += \
    mywnd.h
#对ui界面文件进行管理
FORMS += \
    mywnd.ui


# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
cpp 复制代码
#ifndef MYWND_H
#define MYWND_H           //防止文件重复包含


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


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


//自定义自己的界面类,公共继承自QWidget,父类中重写了绘制事件处理函数
class MyWnd : public QWidget
{
    Q_OBJECT              //信号与槽的元对象,没有这个对象,信号与槽就不能使用了


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


private:
    Ui::MyWnd *ui;           //可以通过该指针调用ui界面上拖拽出来的组件
};
#endif // MYWND_H
cpp 复制代码
#include "mywnd.h"
#include "ui_mywnd.h"


//构造函数的定义
MyWnd::MyWnd(QWidget *parent)
    : QWidget(parent)                 //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
    , ui(new Ui::MyWnd)               //给自己类中的指针成员初始化空间,ui界面中拖拽出来的组件,就在这个对象中
{


    ui->setupUi(this);          //调用Ui::MyWnd类里面的成员函数,给拖拽的组件实例化空间,并设置相关属性
}




//析构函数的定义
MyWnd::~MyWnd()
{
    delete ui;         //释放指针空间
}
cpp 复制代码
#include "mywnd.h"                  //引入自定义图形化界面类的头文件


#include <QApplication>                //引入应用程序类的头文件


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


    MyWnd w;              //用自定义的图形化界面类实例化一个对象
    w.show();            //调用show函数展示界面,父类提供的,可以展示自己的组件,以自己作为父组件的所有子组件也会被展示出来


    return a.exec();          //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}
相关推荐
WangYaolove13149 分钟前
请解释Python中的装饰器是什么?如何使用它们?
linux·数据库·python
我是黄大仙30 分钟前
利用飞书多维表格自动发布版本
运维·服务器·数据库·飞书
曾经的三心草30 分钟前
Mysql之约束与事件
android·数据库·mysql·事件·约束
WuMingf_37 分钟前
redis
数据库·redis
张某布响丸辣1 小时前
SQL中的时间类型:深入解析与应用
java·数据库·sql·mysql·oracle
P.H. Infinity2 小时前
【RabbitMQ】10-抽取MQ工具
数据库·分布式·rabbitmq
zgscwxd2 小时前
thinkphp6 --数据库操作 增删改查
数据库·thinkphp6
代码小鑫2 小时前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端
天天要nx2 小时前
D64【python 接口自动化学习】- python基础之数据库
数据库·python