【PyQt6]全屏截图实现的带密码锁屏功能

文章目录

  • 1. 简介
  • 2. Demo

1. 简介

书接上回,PyQt6 使用 QScreen 实现了截图,如果用个控件全屏显示截图,嘿嘿,那就是简单的一个锁屏界面了,类似于一个假死界面,也挺有意思。
友情提醒 输入 quit 可以退出程序

2. Demo

使用一个加密的功能,让 quit 不是以铭文出现
dbd73c2b545209688ed794c0d5413d5a 是 quit的md5码
md5 据说可以被破解,那就还可以改成 使用 bcrpypt ,不停变更 bcrpypt 密钥,会更有意思

友情提醒,退出 是输入 quit 退出 是输入 quit 退出 是输入quit

在这里插入图片描述

from PyQt6.QtCore import Qt
from PyQt6.QtGui import QKeyEvent, QPainter, QPaintEvent, QColor
from PyQt6.QtWidgets import QApplication, QWidget
import hashlib
# from cout import coutclass FullScreen(QWidget):def __init__(self):"""构造函数无框 顶部显示, 任务栏不显示输入:quitAttrition:self.pixmap : 主屏幕的截图self.bufs   : 字符串缓存"""super(FullScreen, self).__init__()# ------------- 窗口标志设置  -------------self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint| Qt.WindowType.FramelessWindowHint| Qt.WindowType.Tool)       # 可以不出现在任务栏screen = QApplication.primaryScreen()self.pixmap = screen.grabWindow()self.bufs = []  # 用来保存 输入的字符def paintEvent(self, a0: QPaintEvent | None) -> None:painter = QPainter(self)painter.drawPixmap(a0.rect(), self.pixmap)painter.fillRect(a0.rect(), QColor(0, 0, 255, 127))font = painter.font()font.setFamily("楷体")font.setPixelSize(20)painter.setFont(font)painter.setPen(QColor(255, 0, 0))msg = '输入 quit 退出'painter.drawText(20, 30, msg)rect_ad = a0.rect().adjusted(10, 10, -10, -10)painter.drawRect(rect_ad)painter.drawText(rect_ad,Qt.AlignmentFlag.AlignCenter | Qt.TextFlag.TextWrapAnywhere,''.join(self.bufs))return super().paintEvent(a0)# ===============  按键事件 ===============def keyPressEvent(self, a0: QKeyEvent | None) -> None:keycode = a0.key()if keycode <= 0x10ffff:# char = chr(keycode)# cout((keycode, char))self.bufs.append(a0.text())match a0.key():case Qt.Key.Key_Escape:self.bufs = self.bufs[:-1]  # 去掉最后一个 esc 字符self.bufs.append('请输入密码 🚶')case Qt.Key.Key_Enter | Qt.Key.Key_Return:bufs_str = ''.join(self.bufs).strip().encode(encoding='utf-8')md5 = hashlib.md5(bufs_str).hexdigest()if md5.casefold() == 'dbd73c2b545209688ed794c0d5413d5a'.casefold():# if bufs_str.strip().casefold() == 'quit'.casefold():app.quit()self.bufs.clear()self.update()if __name__ == '__main__':app = QApplication([])screen = FullScreen()screen.showFullScreen()# cout(screen.rect())app.exec()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端vue 数字 字符串 丢失精度问题

1.问题 后端返回的数据 是这样的 一个字符串类型的数据 前端要想显示这个 肯定需要使用Json.parse() 转换一下 但是 目前有一个问题 转换的确可以 showId:1206381711026823172 有一个这样的字段 转换了以后 发现 字段成了1206381711026823200 精度直接丢了 原本的数据…

SAP PP学习笔记- 豆知识01 - 怎么查询既存品目

SAP系统当中已经有哪些品目要怎么查询呢&#xff1f; 1&#xff0c;MM60 品目一览 这里可以输入Plant&#xff0c;然后可以查询该工厂的所有品目。 2&#xff0c;SE16 > MARA MARA 品目一般Data&#xff0c;存放的是品目基本信息。 如果要查询该品目属于哪个Plant&#x…

[计算机网络]---序列化和反序列化

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、再谈协议…

杨中科 ASP.NET DI综合案例

综合案例1 需求说明 1、目的:演示DI的能力; 2、有配置服务、日志服务&#xff0c;然后再开发一个邮件发送器服务。可以通过配置服务来从文件、环境变量、数据库等地方读取配置&#xff0c;可以通过日志服务来将程序运行过程中的日志信息写入文件、控制台、数据库等。 3、说明…

linux-firewalld防火墙端口转发

目的:通过统一地址实现对外同一地址暴露 1.系统配置文件开启 ipv4 端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.confsysctl -p 2.查看防火墙配置端口转发之前的状态 firewall-cmd --statefirewall-cmd --list-all 3.开启 IP 伪装 firewall-cm…

6、内网安全-横向移动WmiSmbCrackMapExecProxyChainsImpacket

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 前言&#xff1a; 在内网环境中&#xff0c;主机192.168.3.31有外网网卡能出网&#xff0c;在取得该主机权限后上线&#xff0c;搭建web应用构造后门下载地址&#xff0c;利用该主机执行相…

【漏洞复现】狮子鱼CMS文件上传漏洞(wxapp.php)

Nx01 产品简介 狮子鱼CMS&#xff08;Content Management System&#xff09;是一种网站管理系统&#xff0c;它旨在帮助用户更轻松地创建和管理网站。该系统拥有用户友好的界面和丰富的功能&#xff0c;包括页面管理、博客、新闻、产品展示等。通过简单直观的管理界面&#xf…

JavaWeb之Servlet接口

Servlet接口 什么是Servlet&#xff1f; Servlet是一种基于Java技术的Web组件&#xff0c;用于生成动态内容&#xff0c;由容器管理&#xff0c;是平台无关的Java类组成&#xff0c;并且由Java Web服务器加载执行&#xff0c;是Web容器的最基本组成单元 什么是Servlet容器&…

【后端高频面试题--设计模式上篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 往期精彩内容 【后端高频面试题–设计模式上篇】 【后端高频面试题–设计模式下篇】 【后端高频…

P15---总电磁转矩T

正弦波驱动模式工作的永磁同步电动机的总电磁转矩 T clear clc% 15页表达式 syms Omega theta E I e_A E*sind(theta) e_B E*sind(theta-120) e_C E*sind(theta-240)i_A I*sind(theta) i_B I*sind(theta-120) i_C I*sind(theta-240)P e_A*i_A e_B*i_B e_C*i_CT P/Om…

Spring Boot 笔记 006 创建接口_注册

1.1 由于返回数据都是以下这种格式&#xff0c;那么久再编写一个result实体类 报错了&#xff0c;原因是没有构造方法 可以使用lombok的注解自动生成&#xff0c;添加无参的构造器和全参的构造器 package com.geji.pojo;import lombok.AllArgsConstructor; import lombok.NoArg…

云计算基础-存储基础

存储概念 什么是存储&#xff1a; 存储就是根据不同的应用程序环境&#xff0c;通过采取合理、安全、有效的方式将数据保存到某些介质上&#xff0c;并能保证有效的访问&#xff0c;存储的本质是记录信息的载体。 存储的特性&#xff1a; 数据临时或长期驻留的物理介质需要保…

ClickHouse--01--简介

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. ClickHouse 简介官网&#xff1a; [https://clickhouse.com/docs/zh](https://clickhouse.com/docs/zh) 1.1 大数据处理场景1.2 什么是 ClickHouse1.3 OLAP 场景…

Ubuntu Desktop 显示文件路径

Ubuntu Desktop 显示文件路径 1. GUI hot key2. CLIReferences 1. GUI hot key Ctrl L: 显示文件路径 2. CLI right click -> Open in Terminal -> pwd strongforeverstrong:~/Desktop$ pwd /home/strong/DesktopReferences [1] Yongqiang Cheng, https://yongqiang…

STM32物联网(ESP-01S模块及STM32和ESP-01S通信方式介绍)

文章目录 前言一、ESP-01S模块介绍二、STM32和ESP-01S通信方式介绍三、什么是AT指令四、创建基础工程总结 前言 本篇文章我们开始正式进入STM32物联网的专栏&#xff0c;在这个专栏中将会带大家学习使用STM32进行联网&#xff0c;联网模块的话主要就是使用到了ESP-01S WIFI模块…

2024 CKS 题库 | 7、Dockerfile检测

不等更新题库 CKS 题库 7、Dockerfile检测 Task 分析和编辑给定的Dockerfile /cks/docker/Dockerfile&#xff08;基于ubuntu:16.04 镜像&#xff09;&#xff0c; 并修复在文件中拥有的突出的安全/最佳实践问题的两个指令。 分析和编辑给定的清单文件 /cks/docker/deployme…

Android 车载应用开发之SystemUI 详解

一、SystemUI SystemUI全称System User Interface,直译过来就是系统级用户交互界面,在 Android 系统中由SystemUI负责统一管理整个系统层的 UI,它是一个系统级应用程序(APK),源码在/frameworks/base/packages/目录下,而不是在/packages/目录下,这也说明了SystemUI这个…

BBC英式口语~发音练习~笔记整理

参考资料 原视频地址&#xff1a; https://www.bilibili.com/video/BV1D7411n7bS/?spm_id_from333.1245.0.0&vd_source5986fc7c8e6d754f3ca44233573aeaff 笔记图片

Unity基础 -- 更新中(2.15)

Unity基础 文章目录 Unity基础3D数学 -- 基础一些方法插值运算三角函数坐标系 3D数学 -- 向量理解常用函数线性插值 3D数学 -- 四元数看向四元数计算 延迟函数协同程序 3D数学 – 基础 一些方法 float value01 Mathf.PI; // Π int value03 Mathf.Abs(-2); // 绝对值 int v…

Nvidia 携手 RTX 推出的本地运行 AI 聊天机器人

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…