QT-day1

实现华清远见登陆界面

cpp 复制代码
#include "mywnd.h"
#include <iostream>
#include <QDebug>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>

MyWnd::MyWnd(QWidget *parent)
    : QWidget(parent)
{
    //设置固定窗口大小长400,宽350
    this->setFixedSize(400,350);
    //设置窗口名Widget
    this->setWindowTitle("Widget");
    //导入图标
    this->setWindowIcon(QIcon("F:\\hqyj\\icon\\icon\\wodepeizhenshi.png"));
    //创建标签1华清远见
    QLabel *lab1 = new QLabel(this);
    lab1->resize(400,150);
    lab1->setPixmap(QPixmap("F:\\hqyj\\icon\\icon\\logo.png"));
    lab1->setScaledContents(true);
    //创建admin的标签
    QLabel *lab2 = new QLabel(this);
    lab2->resize(60,55);
    lab2->move(75,160);
    lab2->setPixmap(QPixmap("F:\\hqyj\\icon\\icon\\userName.jpg"));
    lab2->setScaledContents(true);
    //创建密码passwd的标签
    QLabel *lab3 = new QLabel(this);
    lab3->resize(60,55);
    lab3->move(lab2->x(),lab2->y()+65);
    lab3->setPixmap(QPixmap("F:\\hqyj\\icon\\icon\\passwd.jpg"));
    lab3->setScaledContents(true);
    //创建admin行编辑器
    QLineEdit *edit1 = new QLineEdit("admin",this);
    edit1->resize(200,55);
    edit1->move(lab2->x()+65,lab2->y());
    //创建密码passwd行编辑器
    QLineEdit *edit2 = new QLineEdit("123456",this);
    edit2->resize(200,55);
    edit2->move(lab3->x()+65,lab3->y());
    edit2->setEchoMode(QLineEdit::Password);
    //创建登录按钮
    QPushButton *bton1 = new QPushButton(QIcon("F:\\hqyj\\icon\\icon\\login.png"),"登录",this);
    bton1->resize(90,55);
    bton1->move(edit2->x()+20,edit2->y()+65);
    //创建取消按钮
    QPushButton *bton2 = new QPushButton(QIcon("F:\\hqyj\\icon\\icon\\cancel.png"),"登录",this);
    bton2->resize(90,55);
    bton2->move(bton1->x()+105,bton1->y());

}

MyWnd::~MyWnd()
{
}

测试结果

工程文件的注释

工程管理文件.pro

cpp 复制代码
#引入QT工程所需的类库core是核心库,gui是图形开发相关类库
QT       += core gui

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

#支持C++11后的版本
CONFIG += 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 \
    mywind.cpp

#对头文件进行管理
HEADERS += \
    mywind.h

#对ui界面文件进行管理
FORMS += \
    mywind.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 MYWIND_H
#define MYWIND_H        //防止文件重复包含

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

QT_BEGIN_NAMESPACE
namespace Ui { class MyWind; }
QT_END_NAMESPACE

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

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

private:
    Ui::MyWind *ui;      //可以通过该指针调用ui界面上拖拽出来的组件
};
#endif // MYWIND_H

源文件

cpp 复制代码
#include "mywind.h"
#include "ui_mywind.h"

MyWind::MyWind(QWidget *parent)     //构造函数的定义
    : QMainWindow(parent)           //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
    , ui(new Ui::MyWind)            //给自己类中的指针成员初始化空间,ui界面中拖拽出来的组件,就在这个对象中
{
    ui->setupUi(this);              //调用Ui::MyWnd类里面的成员函数,给拖拽的组件实例化空间,并设置相关属性
}

MyWind::~MyWind()      // 定义析构函数
{
    delete ui;         //释放指针空间
}

主程序文件

cpp 复制代码
#include "mywind.h"         //引入自定义图形化界面类的头文件

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv); //使用应用程序类,实例化一个应用程序的对象
    MyWind w;           //用自定义的图形化界面类实例化一个对象
    w.show();           //调用show函数展示界面,父类提供的可以展示自己的组件,以自己作为父组件的所有子组件也会被展示出来
    return a.exec();    //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}
相关推荐
a44931536222 分钟前
MacBook USB-C不充电故障诊断:从PD握手到主板供电链路
c语言·开发语言·macos·电脑
德福危险29 分钟前
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3
开发语言·bash
meng半颗糖35 分钟前
3.Java流程控制语句
java·开发语言·intellij-idea
影寂ldy39 分钟前
C# WinForm 三种自定义控件 + 完全自定义重绘控件知识点
开发语言·c#
Tencent_TCB41 分钟前
腾讯云 CloudBase 登上 WAIC:我们为 Agent 重新设计了云的生产线
网络·数据库·腾讯云
学逆向的1 小时前
汇编——寻址方式
开发语言·汇编·网络安全
大模型码小白1 小时前
企业级检索增强后端集成:Java 服务如何管理知识库版本
java·服务器·开发语言·人工智能·python·microsoft
-银雾鸢尾-1 小时前
C#中的Dictionary相关方法
开发语言·c#
农村小镇哥1 小时前
Python3开发快速获取图片的文字
开发语言·python
数智化管理手记1 小时前
预算控制手工核对效率低?预算控制数字化落地实操如何做?
大数据·网络·数据库·人工智能·数据挖掘