QT : 仿照QQ 完成弹出登录窗口,并实例化组件

news2024/9/24 17:13:07

1. 运行效果图

2. Headers

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
};
#endif // MAINWINDOW_H

3. mainWindow.cpp :

#include "mainwindow.h"

#include <QPushButton>   //按钮头文件
#include <QDebug>        //信息调试类,用于数据的输出使用
#include <QLabel>        //标签头文件
#include <QLineEdit>     //行编辑器的头文件
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    this->setFixedSize(400,300);           //设定窗口大小
    this->setWindowTitle("Widget");        //设定窗口标题为: Widget

    //设置窗口标题图标
    this->setWindowIcon(QIcon("D:\\QT\\project\\wodepeizhenshi.png"));

    this->setStyleSheet("background-color:white;");     //设置样式表

    QLabel *label=new QLabel(this);         //实例化一个标签类,用来放图片
    label->resize(400,150);                 //重新设定标签的大小
    label->setPixmap(QPixmap("D:\\QT\\project\\logo.png"));     //将logo放入标签内
    label->setScaledContents(true);         //将logo设定为自定义适应

    QLineEdit *edit1= new QLineEdit(this);   //实例化一个行编辑器,并指定父组件,存储账号
    edit1->resize(150,20);                   //重新设置行编辑器的大小
    edit1->setPlaceholderText("账号 ");       //设置占位文本提示为账号行
    edit1->move(120,170);                    //移动该行编辑器

    QLineEdit *edit2= new QLineEdit(this);   //实例化一个行编辑器,并指定父组件,存储密码
    edit2->resize(150,20);                   //重新设置行编辑器的大小
    edit2->setPlaceholderText("密码 ");       //设置占位文本提示为密码行
    edit2->setEchoMode(QLineEdit::Password);   //设置为密码显示
    edit2->setMaxLength(6);                    //设置密码最大长度为6位
    edit2->move(120,200);                    //移动该行编辑器

    QLabel *label1 = new QLabel(this);       //实例化一个账号logo标签
    label1->resize(30,20);                   //重新设置logo标签的大小
    label1->setPixmap(QPixmap("D:\\QT\\project\\userName.jpg"));  //将logo放入标签
    label1->setScaledContents(true);         //将logo设定为自适应
    label1->move(80,170);                    //移动账号logo标签

    QLabel *label2 = new QLabel(this);       //实例化一个密码logo标签
    label2->resize(30,20);                   //重新设置logo标签的大小
    label2->setPixmap(QPixmap("D:\\QT\\project\\passwd.jpg"));  //将logo放入标签
    label2->setScaledContents(true);         //将logo设定为自适应
    label2->move(80,200);                    //移动账号logo标签


    QPushButton *but1= new QPushButton("登录",this);       //实例化一个登录按钮并初始化
    but1->setIcon(QIcon("D:\\QT\\project\\login.png"));   //将login放入按钮内
    but1->resize(50,25);                    //重新设置登录按钮的大小
    but1->move(130,240);                    //移动登录按钮

    QPushButton *but2= new QPushButton("登录",this);       //实例化一个取消按钮并初始化
    but2->setIcon(QIcon("D:\\QT\\project\\cancel.png"));   //将login放入按钮内
    but2->resize(50,25);                    //重新设置取消按钮的大小
    but2->move(200,240);                    //移动取消按钮
}

MainWindow::~MainWindow()
{
}

4. main.cpp :

#include "mainwindow.h"

#include <QApplication>

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

5. 思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android studio实现登录验证后返回token及用户信息,使用token获取用户信息并生成列表展示

大概时序图 登录成功保存token&#xff0c;然后带token请求获取用户列表 实现效果&#xff1a; 依赖 build.gradle(:app) dependencies {implementation androidx.recyclerview:recyclerview:1.2.1implementation com.google.code.gson:gson:2.8.9implementation com.tenc…

Python爬虫逆向猿人学刷题系列——第七题

题目&#xff1a;采集这5页中胜点列的数据&#xff0c;找出胜点最高的召唤师&#xff0c;将召唤师姓名填入答案中 地址&#xff1a;https://match.yuanrenxue.cn/match/7 本题主要是考察字体的动态变化&#xff0c;同样也是从字体文件下手构造出映射关系就好&#xff0c;但本题…

k8s(Kubernetes)集群部署--使用 kubeadm方式部署

k8s集群部署--使用 kubeadm方式部署 一、测试所需环境&#xff08;三台均要执行&#xff09;二、配置准备&#xff08;三台均要执行&#xff09;1. 重命名hostname、添加hosts2. 关闭防火墙、selinux与swap3. 添加网桥过滤及内核转发配置文件4.同步时间5.安装ipset及ipvsadm 三…

Tomcat 下部署 jFinal

1、检查web.xml 配置&#xff0c;在 tomcat 下部署需要检查 web.xml 是否存在&#xff0c;并且要确保配置正确&#xff0c;配置格式如下。 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…

网址导航收藏引导页面H5源码(自适应引导页HTML源码)-自动检测域名延迟

简介&#xff1a; 网址导航收藏引导页面H5源码&#xff08;自适应引导页HTML源码&#xff09;&#xff0c;可以自动检测域名延迟。这网址导航发布页不同于其它的&#xff0c;因为它可以测试所有域名的一个访问速度&#xff0c;并且将访问速度具象化显示出来&#xff0c;具体的…

性能调优降本实例

降本思路 在A企业内部&#xff0c;线上业务稳定性标准为&#xff1a;达到业务核定TPS时&#xff0c;CPU利用率的峰值不超过60&#xff05;&#xff0c;即为稳定状态。 在这个背景下&#xff0c;测试部门针对部分CPU消耗较高的系统进行了统一梳理和专项性能测试&#xff0c;旨…

Linux 挂载

挂载需要挂载源和挂载点 虚拟机本身就有的挂源 添加硬件 重启虚拟机 操作程序 sudo fdisk -l //以管理员权限查看电脑硬盘使用情况sudo mkfs.ext4 /dev/sdb //以管理员身份格式化硬盘sudo mkdir guazai //创建挂载文件夹 sudo mount /dev/sdb/guazai //将挂载源接上挂载点 s…

【数据结构】堆排序详解

文章目录 一、堆排序思想二、向上调整建堆排序三、向下调整建堆排序四、总结 对于什么是堆&#xff0c;堆的概念分类以及堆的向上和向下两种调整算法可见&#xff1a; 堆的创建 一、堆排序思想 int a[] { 2,3,5,7,4,6 };对于这样一个数组来说&#xff0c;要想要用堆排序对它…

Webserver项目解析

一.webserver的组成部分 Buffer类 用于存储需要读写的数据 Channel类 存储文件描述符和相应的事件&#xff0c;当发生事件时&#xff0c;调用对应的回调函数 ChannelMap类 Channel数组&#xff0c;用于保存一系列的Channel Dispatcher 监听器&#xff0c;可以设置为epo…

分享一个基于微信小程序的社区生活小助手源码调试和lw,有java+python双版本

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

让NPU跑起来迅为RK3588开发板设置交叉编译器

让NPU跑起来迅为RK3588开发板设置交叉编译器 编译器下载地址是网盘资料“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资料 \12_NPU 使用配套资料\03_编译所需工具\Linux”。 拷贝 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz 到 Ubuntu 的/opt/tool_ch…

JavaScript中的`async`和`await`关键字的作用

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ async关键字⭐ await 关键字3. 错误处理 ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对We…

中国汽车供应商远赴德国,中国智驾方案能否远渡重洋?

作者|Amy 编辑|德新 今年的上海车展&#xff0c;中国智能汽车的进步有目共睹&#xff0c;吸引了大批外企高管和研发人员的关注&#xff0c;甚至引发了海外车企一系列的动作和调整。 而在刚刚结束的慕尼黑车展&#xff0c;中国车企及汽车供应链把「肌肉」秀到了现代汽车起源地…

flask要点与坑

简介 Flask是一个用Python编写的Web应用程序框架&#xff0c;该框架简单易用、模块化、灵活性高。 该笔记主要记录Flask的关键要点和容易踩坑的地方 Flask 日志配置 Flask 中的自带logger模块&#xff08;也是python自带的模块&#xff09;&#xff0c;通过简单配置可以实现…

浅谈拓展欧几里得算法

1、求特解 x 0 , y 0 x_0, y_0 x0​,y0​ 普通的欧几里得算法依据是辗转相除法&#xff0c;也就是&#xff0c;比如求 a &#xff0c; b a&#xff0c;b a&#xff0c;b 的最大公约数&#xff0c; a &#xff0c; b a&#xff0c;b a&#xff0c;b 进行辗转相除直到 a − b …

复盘:细数这些年写文字的成与败

引言 最近一直在思考和复盘&#xff0c;要说我这些年最后悔没坚持或者没做对的一件事就是没有好好写文字。时间过得很快&#xff0c;一晃笔者已经快毕业十年了&#xff0c;文章写得比较密集的时候还是大学时代和毕业头几年&#xff0c;后面输出就越来越少了&#xff0c;甚至一…

前端性能优化:提升网站速度与用户体验的终极指南

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在今天的数字时代&#…

【C++ 学习 ㉑】- 详解 map 和 set(上)

目录 一、C STL 关联式容器 二、pair 类模板 三、set 3.1 - set 的基本介绍 3.2 - set 的成员函数 3.1.1 - 构造函数 3.1.2 - 迭代器 3.1.3 - 修改操作 3.1.4 - 其他操作 四、map 4.1 - map 的基本介绍 4.2 - map 的成员函数 4.2.1 - 迭代器 4.2.2 - operator[] …

避免使用违规词,企业新媒体营销应注重品牌形象维护

随着越来越多的主体入局新媒体平台&#xff0c;为了维护平台健康的内容生态和创造良好的社区氛围&#xff0c;社交平台在内容上的监管越发严格。 不可避免的&#xff0c;很多做新媒体营销的企业开始陷入与平台审核的“拉扯”之中。 为了让品牌账号在各平台上顺利运营&#xff0…

二十一、MySQL(多表)内连接、外连接、自连接实现

1、多表查询 &#xff08;1&#xff09;基础概念&#xff1a; &#xff08;2&#xff09;多表查询的分类&#xff1a; 2、内连接 &#xff08;1&#xff09;基础概念&#xff1a; &#xff08;2&#xff09;隐式内连接&#xff1a; 基础语法&#xff1a; select 表1.name,…