Qt制作简单的无边框登陆窗口

隔壁老王 等级 1117 0 0

使用qt做简单的登录窗口

环境:

  • win10
  • Qt5

创建项目: Qt制作简单的无边框登陆窗口

Qt制作简单的无边框登陆窗口

选择Widget类 勾选ui界面

因为我是用的默认类名所以类名是Widget 以下是Widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
protected:
    // 重写鼠标拖动事件
    void mouseMoveEvent(QMouseEvent *event);
    // 重写鼠标选中事件
    void mousePressEvent(QMouseEvent *event);
    // 重写鼠标离开事件
    void mouseReleaseEvent(QMouseEvent *event);

private:
    Ui::Widget *ui;
    QPoint mousePoint; // 记录鼠标坐标
    bool mouse_press;  // 记录是否聚焦
};

#endif // WIDGET_H

Widget.cpp文件

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 固定登录大小窗口
    this->setFixedSize(400, 300);
    // 信号槽监听关闭窗口
    connect(ui->Logout,&QPushButton::clicked, this, &Widget::close);
    // 设置登录窗口无边框
    this->setWindowFlags(Qt::FramelessWindowHint);
    // 监听勾选显示密码
    connect(ui->DisplayPwd, &QCheckBox::clicked, this, [=](bool flag){
        if(flag){
            ui->PassWord->setEchoMode(QLineEdit::Normal);
        }else{
            ui->PassWord->setEchoMode(QLineEdit::Password);
        }
    });

    // 监听点击登录
    connect(ui->Login,&QPushButton::clicked, this, [&](bool){
        // 展示其他界面
        // this->XXXX.show();
        // 收起登录界面
        // this->hide();
    });
}

Widget::~Widget()
{
    delete ui;
}

void Widget::mouseMoveEvent(QMouseEvent *event)
{
    if(mouse_press)
    {
        move(event->globalPos() - mousePoint);
    }
}

void Widget::mousePressEvent(QMouseEvent *event)
{
    // 如果点击鼠标左键
    if(event->button() == Qt::LeftButton){
        mouse_press = true;
        // 鼠标点击的位置 - 窗口坐标
        mousePoint = event->globalPos() - this->pos();
    }
}

void Widget::mouseReleaseEvent(QMouseEvent *event)
{
    mouse_press = false;
}

ui界面

Qt制作简单的无边框登陆窗口

密码使用密文需要勾选ui界面选项

Qt制作简单的无边框登陆窗口

最终效果

Qt制作简单的无边框登陆窗口

还可以点击勾选显示密码查看

收藏
评论区

相关推荐

全网最详细的负载均衡原理图解
负载均衡由来 在业务初期,我们一般会先使用单台服务器对外提供服务。随着业务流量越来越大,单台服务器无论如何优化,无论采用多好的硬件,总会有性能天花板,当单服务器的性能无法满足业务需求时,就需要把多台服务器组成集群系统提高整体的处理性能。 (https://imghelloworld.osscnbeijing.aliyuncs.com/acc
PyQt5 快速开发与实战(二)
3.4 信号与槽关联 1. 信号signal与slot 是Qt的核心机制。 2. 如何为控件发射的信号指定对应的处理槽函数? 1. 在窗口的UI设计中添加信号
一文搞懂什么是HTTP与HTTPS
(https://blog.csdn.net/petterp/article/details/102779257)Http与Https的区别。 在最近的开发中,深感网络相关基础知识薄弱,于是趁周末好好总结一
20 张图彻底弄懂 HTTPS 的原理
前言 近年来各大公司对信息安全传输越来越重视,也逐步把网站升级到 HTTPS 了,那么大家知道 HTTPS 的原理是怎样的吗,到底是它是如何确保信息安全传输的?网上挺多介绍 HTTPS,但我发现总是或多或少有些点有些遗漏,没有讲全,今天试图由浅入深地把 HTTPS 讲明白,相信大家看完一定能掌握 HTTPS 的原理,本文大纲如下: HTTP 为什么不安全
关于WIFI密码破解——握手包(详细图文教程)
前言:新搬的地方还没有安装WIFI,流量手机流量快烧完了,看着附近的WIFI,很是心动。于是上网搜索了一下教程进行试验,试验过程和结果,仅作为学习记录。 试验环境:1. 台式机2. Kali虚拟机3. 无线网卡4. 菜鸡一只 试验过程: 一、无线网卡安排1.主机USB接口直接怼入无线网卡,Kali虚拟机弹窗提示,选择连接到虚拟机,选中Kali,点击确定。(看
一文带你读懂PyQt:用Python做出与C++一样的GUI界面应用程序
\ 一、简介 Python标准库更多的适合处理后台任务,唯一的图形库tkinter使用起来很不方便,所以后来出现了针对Python图形界面开发的扩展库,今天老猿要介绍的是主流Python图形界面扩展库之一的PyQt。 在介绍PyQt之前,必须先简单介绍一下Qt。Qt是一个C++可视化开发平台,是一个跨平台的C++图形用户界面应用程序框架(C++ GUI)
Ubuntu20.04安装、配置、卸载QT5.9.9与QT creator以及第一个编写QT程序
一、下载与安装QT选择qtopensourcelinuxx645.9.9.run,如果是Chrome点击以后没有反应建议换个浏览器尝试,比如Firefox下载完毕开始安装先使用命令改变qt安装包的权限,以便于后续操作bashchmod +x qtopensourcelinuxx645.9.9.run或者bashchmod u+x qtopensourceli
https://cloud.tencent.com/developer/article/write/1830331
一、目标今天的目标是这个sign和appcode 二、步骤 Jadx没法上了app加了某梆的企业版,Jadx表示无能为力了。 FRIDADEXDumpDexDump出来,木有找到有效的信息。 Wallbreaker葫芦娃的Wallbreaker可以做些带壳分析,不过这个样本,用Frida的Spawn模式可以载入,Attach模式会失败。而直接用Objecti
Qt制作简单的无边框登陆窗口
使用qt做简单的登录窗口 环境: win10 Qt5创建项目: 选择Widget类 勾选ui界面因为我是用的默认类名所以类名是Widget以下是Widget.hc++ifndef WIDGETHdefine WIDGETHinclude <QWidgetnamespace Ui class Widget;class Widget : public QWidg
Qt简单使用表格
接在Qt简单登录后https://www.helloworld.net/p/4enJFnZUQAC8G 添加新文件 使用的组件table weight和 table view头文件c++ifndef MANAGEMENTHdefine MANAGEMENTHinclude <QWidgetinclude <QMouseEventnamespace Ui cl
Qt制作简单配置窗口
在上一篇登录操作之后新建设计类记录用户信息及服务端连接信息头文件cppifndef CLIENTCONFIGHdefine CLIENTCONFIGHinclude <QWidgetinclude <QDialoginclude"fileoperation.h"namespace Ui class clientconfig;class clientconfi
Qt文件和json
qt中创建普通c++类头文件cppifndef OPERATIONHdefine OPERATIONHinclude <QFile// 默认配置文件路径const QString FilePath "./config.json";typedef struct FileConfig QString ip; QString port; QS
Qt使用QSocket做tcp简单客户端
首先要在工程文件.por中添加network添加新文件在头文件中导入qtcpsocket之后定义成员函数用于发送和接收数据Qt封装的socket使用的是信号槽监听接收到的数据所以需要添加监听使用的传输格式 报文长度8字节字符串 + base64转码的json报文头文件cppifndef TCPSOCKETHdefine TCPSOCKETHinclude<Q
Qt中添加背景图
第一步选择一张背景图下到本地 第二步在qt中点击添加新文件选择图中位置随便起个名字,点击下一步这时项目中多出一个目录选择打开资源编辑器底部添加前缀:注意该前缀是在内部使用图的路径点击添加添加前缀我这里直接使用的/作为前缀再点击添加文件选择需要的图片资源加载进入后1. 使用代码添加背景图cpp// 开启背景设置thissetAutoFillBackground
JAVA回调机制(CallBack)之小红是怎样买到房子的??
JAVA回调机制CallBack 序言最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按