创建UI账号密码登录界面

头文件

复制代码
#ifndef MYWND_H
#define MYWND_H

#include <QPushButton>
#include <QMainWindow>

class MyWnd : public QMainWindow
{
    Q_OBJECT

public:
    MyWnd(QWidget *parent = nullptr);
    ~MyWnd();
};
#endif // MYWND_H

源文件

复制代码
#include "mywnd.h"
#include <iostream>
#include <QDebug>
#include <QLineEdit>
#include <QScrollArea>
#include <QLabel>
MyWnd::MyWnd(QWidget *parent):QMainWindow(parent)
{
    //登录界面操作
    this->resize(640,480);  //设置界面大小
    this->setMaximumSize(900,800);  //设置界面最大值
    this->setMinimumSize(QSize(640,480));  //设置界面最小值
    this->setFixedSize(640,480);  //设置固定尺寸

    qDebug()<<this->windowTitle();  //获取当前组件的窗口标题
    this->setWindowTitle("原神");  //将当前组件的窗口标题重命名
    this->setWindowIcon(QIcon("D:\\QTtupian\\原神图标.jpg"));  //将窗口标题改为指定图标

    //设置标签类(设置背景图片)
    QLabel *lab1 = new QLabel(this);
    lab1->resize(this->size());  //将背景图片设定成和界面一样大小
    lab1->setPixmap(QPixmap("D:\\QTtupian\\寂寞阿晴.gif"));  //背景图片
    lab1->setScaledContents(true);  //将图片填满标签

    //this->setWindowOpacity(0.9);  //设置透明度
    //this->setWindowFlag(Qt::FramelessWindowHint);  //去掉窗口头部

    //设置按钮
    QPushButton *btn1 = new QPushButton(QIcon("D:\\QTtupian\\圈.jpg"),"登录",this);
    //btn1->setParent(this);  //将当前界面设为父组件
    //btn1->setText("按钮1");  //给按钮重命名
    btn1->resize(100,30);   //设置按钮的大小
    btn1->move(160,370);  //设置按钮的位置
    btn1->setStyleSheet("background-color:white;border-radius:10px;"); //颜色和锐化
    //btn1->setEnabled(false);

    //构造时直接给定图标、文本内容、父组件
    QPushButton *btn2 = new QPushButton(QIcon("D:\\QTtupian\\叉.jpg"),"退出",this);
    btn2->resize(btn1->size());  //设置和按钮1的大小相同
    btn2->move(btn1->x()+220,btn1->y());  //移动离btn1大小为x+220,y的位置
    btn2->setStyleSheet("background-color:white;border-radius:10px;"); //颜色和锐化

    //实例化标签,并给定初始文本内容,并指定父类
    //账号图标
    QLabel *lab2 = new QLabel(this);
    lab2->setPixmap(QPixmap("D:\\QTtupian\\账号图标.jpg"));  //将账号图标放进标签
    lab2->setScaledContents(true);  //将标签填满
    lab2->resize(40,40);  //设置标签大小
    lab2->move(190,250);  //移动标签
    lab2->setStyleSheet("background-color:white;");  //将标签设置成白色

    //密码图标
    QLabel *lab3 = new QLabel(this);
    lab3->setPixmap(QPixmap("D:\\QTtupian\\密码图标.jpg"));
    lab3->setScaledContents(true);
    lab3->resize(lab2->size());
    lab3->move(lab2->x(),lab2->y()+50);
    lab3->setStyleSheet("background-color:white;");

    //行编辑器对象
    //账号行
    QLineEdit *edit1 = new QLineEdit(this);  //账号输入
    edit1->resize(250,40);  //账号行的大小
    edit1->move(lab2->x()+50,lab2->y());  //位置
    edit1->setPlaceholderText("米哈游账号/手机号/邮箱");  //设置占位文字
    edit1->setAlignment(Qt::AlignCenter);  //垂直水平居中

    //密码行
    QLineEdit *edit2 = new QLineEdit(this);
    edit2->resize(edit1->size());
    edit2->move(lab3->x()+50,lab3->y());
    edit2->setEchoMode(QLineEdit::Password);        //设置回显模式
    edit2->setMaxLength(6);  //限制输入密码长度
    edit2->setAlignment(Qt::AlignCenter);
}

MyWnd::~MyWnd()
{
}

主函数

复制代码
#include "mywnd.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWnd w;
    w.show();
    return a.exec();
}

2、思维导图

相关推荐
布莱克6051 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
沫璃染墨5 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
xiaoye-duck6 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
旖旎夜光8 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
小超人诞生日记8 小时前
C++ 智能指针的使用及其原理详解
c++·算法
akinggw9 小时前
libagentcore - 一个基于c++的AI多agent系统升级到2.0版本
开发语言·jvm·c++
繁星蓝雨10 小时前
C++设计原理———多重继承(虚基类、菱形继承、委托、重命名、基类和成员初始化)
c++·委托·多重继承·mi·显式初始化列·虚基类·对象布局
旖旎夜光11 小时前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习
Autumn_ing11 小时前
Pixso AI 如何按团队设计规范生成 UI?以消息设置页说明选库与验收
人工智能·ui·设计规范·pixso
扶尔魔ocy12 小时前
【QT入门到晋级】用开源的自定义控件开发
c++·qt·自定义控件