【无标题】

目录

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();          //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}
相关推荐
子超兄9 小时前
慢查询处理SOP
数据库
TDengine (老段)9 小时前
TDengine C/C++ 连接器入门指南
大数据·c语言·数据库·c++·物联网·时序数据库·tdengine
地球资源数据云10 小时前
2019-2024年中国逐年10米分辨率最大值合成NDVI数据集
大数据·运维·服务器·数据库·均值算法
自燃人~10 小时前
怎么优化慢SQL
数据库·sql
爱学java的ptt10 小时前
mysql的存储引擎
数据库·mysql
小宇的天下10 小时前
innovus Flip chip 产品设计方法(3)
数据库·windows·microsoft
GalenZhang88810 小时前
使用 Python SDK 将数据写入飞书多维表格
数据库·python·飞书·多维表格
云和数据.ChenGuang10 小时前
GaussDB 期末考试题与面试题
数据库·opengauss·gaussdb·数据库期末试题
不屈的铝合金10 小时前
SQL 语言概述与数据库核心前置配置了解
数据库·sql·mysql·约束·sql 语句分类·字符集配置·校对规则
萧曵 丶10 小时前
可重复读(Repeatable Read)隔离级别下幻读产生的原因
数据库·sql·mysql