QT第一讲

思维导图

手动实现登录框

要求:

1、登录窗口更改标题、图标

2、设置固定尺寸、并给定一定的透明度

widget.h
cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>


#include<QWidget>
#include<QDebug>  //信息调试类,用于打印输出-->cout<< printf()
#include<QIcon>   //图标头文件
#include<QPushButton> //按钮类头文件
#include<QLineEdit>  //行编辑器类
#include<QLabel>     //标签类
#include<QMovie>


QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    QLabel *lab1;
    QLabel *lab2;
    QLabel *lab3;
    QLabel *lab4;
    QLineEdit *edit1;
    QLabel *lab5;
    QLineEdit *edit2;
    QLabel *lab6;
    QPushButton *btn1;
    QLabel *lab7;
    QPushButton *btn2;

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
cpp 复制代码
#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{

    //设置截面尺寸
    this->resize(600,600);
    this->setWindowTitle("ikun Chat");
    this->setFixedSize(600,600);
    this->setWindowOpacity(0.9);

    lab1 = new QLabel(this);   //主背景
    lab1->setPixmap(QPixmap("E:\\Qt\\Icon\\1.png"));
    lab1->resize(30,30);
    lab1->move(0,0);
    lab1->setScaledContents(true); //图片大小自适应

    lab2 = new QLabel("ikun chat",this); //顶部文字
    lab2->resize(100,30);
    lab2->move(100,0);

    lab3 = new QLabel(this);
    lab3->setPixmap(QPixmap("E:\\Qt\\icon\\bg.png"));
    lab3->resize(600,150);
    lab3->move(0,30);
    lab3->setScaledContents(true);

    lab4 = new QLabel(this);//账号框图标
    lab4->setPixmap(QPixmap("E:\\Qt\\QQIcon\\user.png"));
    lab4->resize(30,30);
    lab4->move(80,190);
    lab4->setScaledContents(true);

    edit1 = new QLineEdit(this);  //账号框
    edit1->resize(200,30);
    edit1->move(120,190);
    edit1->setPlaceholderText("账号");

    lab5 = new QLabel(this);//密码框图标
    lab5->setPixmap(QPixmap("E:\\Qt\\QQIcon\\password.png"));
    lab5->resize(30,30);
    lab5->move(80,240);
    lab5->setScaledContents(true);

    edit2 = new QLineEdit(this);  //密码框
    edit2->resize(200,30);
    edit2->move(120,240);
    edit2->setEchoMode(QLineEdit::Password); //密文模式
    edit2->setPlaceholderText("密码");

    lab6 = new QLabel(this);  //登录图标
    lab6->setPixmap(QPixmap("E:\\Qt\\QQIcon\\signup.png"));
    lab6->resize(30,30);
    lab6->move(200,300);
    lab6->setScaledContents(true);

    btn1 = new QPushButton("登录",this); //登录框
    btn1->resize(80,30);
    btn1->move(230,300);

    lab7 = new QLabel(this);  //取消图标
    lab7->setPixmap(QPixmap("E:\\Qt\\QQIcon\\exit.png"));
    lab7->resize(30,30);
    lab7->move(320,300);
    lab7->setScaledContents(true);

    btn2 = new QPushButton("取消",this); //取消框
    btn2->resize(80,30);
    btn2->move(350,300);
}

Widget::~Widget()
{
    delete ui;
}
main.cpp
cpp 复制代码
#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
测试运行结果
相关推荐
昵称画7 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
“AI国潮设计-小江”7 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
传奇开心果编程7 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
code tsunami8 小时前
【无标题】
开发语言·python
CodeGL8 小时前
10、Python基础之进程和线程
开发语言·python
hetao17338379 小时前
2026-10-22~23 hetao1733837 的刷题记录
c++·算法
TechWayfarer9 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
王老师青少年编程9 小时前
2025年6月GESP真题及题解(C++三级): 选择题和判断题(题解)
c++·真题·gesp·答案·csp·三级·信奥赛
卡卡~~10 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
qq_4069810310 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust