【无标题】

目录

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();          //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}
相关推荐
好好学习的人8 分钟前
SQL第12课——联结表
数据库·sql
程序员古德16 分钟前
系统架构设计师论文《论NoSQL数据库技术及其应用》精选试读
数据库·nosql
青云交25 分钟前
大数据新视界 --大数据大厂之 DataFusion:超越传统的大数据集成与处理创新工具
数据库·内存管理·apache hive·数据集成·大数据处理·datafusion·查询处理·powercenter
s_little_monster28 分钟前
【QT】QT入门
数据库·c++·经验分享·笔记·qt·学习·mfc
hefaxiang1 小时前
【MYSQL】mysql约束---自增长约束(auto_increment)
数据库·mysql
琴智冰1 小时前
SpringBoot
java·数据库·spring boot
AAEllisonPang1 小时前
Oracle 时间计算
数据库·oracle
m0_716499061 小时前
达梦8-数据守护集群主备故障实验和脑裂处理
数据库
小登ai学习2 小时前
简单认识 redis -3 -其他命令
数据库·redis·缓存
m0_687399842 小时前
QT combox 前缀匹配
开发语言·数据库·qt