【pyqt5界面化工具开发-11】界面化显示检测信息
目录
0x00 前言:
一、布局的设置
二、消息的显示
0x00 前言:
我们在10讲的基础上,需要将其输出到界面上
思路:
1、消息的传递
2、布局的设置
先考虑好消息的传递,再来完善布局
其实先完善布局,再来设置消息的传递也行
(我不是中国人,就是外国人)
一、布局的设置
将布局设置好以后,我们就可以来绑定消息,以及消息的显示
import sys
import timefrom PyQt5.QtCore import *
from PyQt5.QtWidgets import *class MainWindow(QDialog):# 声明一个信号,放在函数外面my_signal = pyqtSignal(str)def __init__(self):super().__init__()self.init_ui()self.msg_history = list() # 用来存放消息def init_ui(self):self.resize(500,400)container = QVBoxLayout() # 创建一个整体布局self.setLayout(container) # 设置布局器(主入器)#————————————————————————————————————————————————————————————-————
# 以下为布局的设置# 创建一个滚动对象scroll = QScrollArea()scroll.setWidget(self.msg)# 创建垂直布局,用来添加自动滚动条v_layout = QVBoxLayout()v_layout.addWidget(scroll)# 常见水平布局器h_layout = QHBoxLayout()btn = QPushButton("开始检测",self)# 绑定按钮的点击事件btn.clicked.connect(self.check)h_layout.addStretch(1) # 伸缩器h_layout.addWidget(btn)h_layout.addStretch(1)# 水平+垂直布局 添加到主容器container.addLayout(v_layout)container.addLayout(h_layout)#————————————————————————————————————————————————————————————————# 定义槽def my_slot(self,msg):# 更新内容print(msg)# 点击事件对应的逻辑函数代码def check(self):# 下面改为自己的漏洞检测事件for i,ip in enumerate(["192.168.1.%d" % x for x in range(1,20)]):msg = "正在检测 %s 上的漏洞" % ip# print(msg)# 漏洞的判断if i % 5 == 0:# 发射信号 对象.信号(参数)self.my_signal.emit(msg + "[存在漏洞]")# else:# self.my_signal.emit("")time.sleep(0.1)if __name__ == '__main__':app = QApplication(sys.argv)# 根据命名自己改(我每个都以MainWindow就不改了)w = MainWindow()w.setWindowTitle("对话框")w.show()sys.exit(app.exec_())
二、消息的显示
对于消息的布局+消息的更新显示
import sys
import timefrom PyQt5.QtCore import *
from PyQt5.QtWidgets import *class MainWindow(QDialog):# 声明一个信号,放在函数外面my_signal = pyqtSignal(str)def __init__(self):super().__init__()self.init_ui()self.msg_history = list() # 用来存放消息def init_ui(self):self.resize(500,400)container = QVBoxLayout() # 创建一个整体布局self.setLayout(container) # 设置布局器(主入器)#————————————————————————————————————————————————————————
# 消息的显示界面# 显示检测到的界面信息self.msg = QLabel("")self.msg.resize(400,40)self.msg.setWordWrap(True) # 自动换行self.msg.setAlignment(Qt.AlignTop) # 靠上# self.msg.setStyleSheet("background-color:yellow;color:black;")#————————————————————————————————————————————————————————# 创建一个滚动对象scroll = QScrollArea()scroll.setWidget(self.msg)# 创建垂直布局,用来添加自动滚动条v_layout = QVBoxLayout()v_layout.addWidget(scroll)# 常见水平布局器h_layout = QHBoxLayout()btn = QPushButton("开始检测",self)# 绑定按钮的点击事件btn.clicked.connect(self.check)h_layout.addStretch(1) # 伸缩器h_layout.addWidget(btn)h_layout.addStretch(1)# 水平+垂直布局 添加到主容器container.addLayout(v_layout)container.addLayout(h_layout)# 绑定信号和槽(自定义的)self.my_signal.connect(self.my_slot)# 定义槽def my_slot(self,msg):# 更新内容print(msg)#————————————————————————————————————————————————————————————————————————————————————
# 消息的更新self.msg_history.append(msg)self.msg.setText("<br>".join(self.msg_history))self.msg.resize(400,self.msg.frameSize().height() + 40) # 增加的大小,和设置的每一行的宽高一致self.msg.repaint() # 更新内容,不更新会无显示# print("[+]",msg)#————————————————————————————————————————————————————————————————————————————————————# 点击事件对应的逻辑函数代码def check(self):# 下面改为自己的漏洞检测事件for i,ip in enumerate(["192.168.1.%d" % x for x in range(1,20)]):msg = "正在检测 %s 上的漏洞" % ip# print(msg)# 漏洞的判断if i % 5 == 0:# 发射信号 对象.信号(参数)self.my_signal.emit(msg + "[存在漏洞]")# else:# self.my_signal.emit("")time.sleep(0.1)if __name__ == '__main__':app = QApplication(sys.argv)# 根据命名自己改(我每个都以MainWindow就不改了)w = MainWindow()w.setWindowTitle("对话框")w.show()sys.exit(app.exec_())
运行效果:

相关文章:
【pyqt5界面化工具开发-11】界面化显示检测信息
目录 0x00 前言: 一、布局的设置 二、消息的显示 0x00 前言: 我们在10讲的基础上,需要将其输出到界面上 思路: 1、消息的传递 2、布局的设置 先考虑好消息的传递,再来完善布局 其实先完善布局,再来设置消…...
Batbot电力云平台在智能配电室中的应用
智能配电室管理系统是物联网应用中的底层应用场景,无论是新基建下的智能升级,还是双碳目标下的能源管理,都离不开智能配电运维对传统配电室的智慧改造。Batbot智慧电力(运维)云平台通过对配电室关键电力设备部署传感器…...
链表(详解)
一、链表 1.1、什么是链表 1、链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。 2、结点包括两个部分:&#x…...
最简单vue获取当前地区天气--高德开放平台实现
目录 前言 一、注册成为高德平台开发者 二、注册天气key 1.点击首页右上角打开控制台 2.创建新应用 三、vue项目使用 1.打开vue项目找到public下的index.html,如果是vue3的话直接在主目录打开index.html文件就行,主要就是打开出口文件 编辑 2.根据高德…...
大数据处理 正则表达式去除特殊字符 提取中文英文数字
在文本处理中,经常会碰到含有特殊字符的字符串。 比如用户昵称, 小红书文案,等等 都包含了大量表情特殊字符。 这些特殊字符串在ETL处理过程中,经常会引起程序报错,导致致命错误,程序崩溃;或者导…...
Python装饰器(decorators)
本文改编自以下文章:Decorators in Python 装饰器是一个很强大的工具,它允许我们很便捷地修改已有函数或者类的功能,我们可以用装饰器把另一个函数包装起来,扩展一些功能而不需要去修改这个函数代码。 预备知识 在Python中&…...
[halcon] 局部图片保存 gen_circle 和 gen_rectangle2 对比 这怕不是bug吧
背景 我想实现一个功能,获取图片中瑕疵的位置,将瑕疵周边的一块区域抠图并保存。 上代码 一开始我代码这么写的: gen_circle (Rectangle, Row[i], Column[i], 256) reduce_domain(Image,Rectangle,GrayEllipse) crop_domain(GrayEllipse,…...
解析msvcp100.dll丢失的原因及修复方法,教你快速解决的方案
msvcp100.dll文件的丢失,其实也是属于dll丢失的其中一种,因为它是dll文件,大家记住,只要是后缀是dll的文件那么它就是dll文件,只要丢失了dll文件,那么其解决的方法都是大同小异的,唯一不同的是&…...
算法:模拟思想算法
文章目录 实现原理算法思路典型例题替换所有问号提莫攻击N字型变换外观序列 总结 本篇总结的是模拟算法 实现原理 模拟算法的实现原理很简单,就是依据题意实现题意的目的即可,考察的是你能不能实现题目题意的代码能力 算法思路 没有很明显的算法思路…...
【base64】JavaScriptuniapp 将图片转为base64并展示
Base64是一种用于编码二进制数据的方法,它将二进制数据转换为文本字符串。它的主要目的是在网络传输或存储过程中,通过将二进制数据转换为可打印字符的形式进行传输 JavaScript 压缩图片 <html><body><script src"https://code.j…...
根据一个List生成另外一个List,修改其中一个,导致另外一个List也在变化
1、两个List复制 SysDic aSysDic new SysDic(); aSysDic.setDkey("1"); aSysDic.setDnote("12"); SysDic bSysDic new SysDic(); bSysDic.setDkey("2"); bSysDic.setDnote("23"); …...
Cesium 加载 geojson 文件并对文件中的属性值进行颜色设置
文章目录 需求分析解决 需求 Cesium 加载 geojson 文件并对文件中的属性值进行颜色设置 分析 在搜寻多种解决方案后,最后总结出 自己的解决方案 方案一,没看懂 var geojsonOptions {clampToGround : true //使数据贴地};var entities;promise Cesium…...
windows系统配置tcp最大连接数
打开注册表 运行->regedit HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目录下 增加一个MaxUserPort(默认值是5000,端口范围是1025至5000)MaxUserPort设置为65534(需重启服务器) 执行dos命令&…...
SQL存储过程中 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON的作用和详解
今天在写SQL Server存储过程中遇到的,做个整理归纳 USE [ABInbevDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO实际上,我们在创建存储过程的时候,这几行的代码是会自动创建出来的,那么先解释下两个标准的概念。 两个…...
C语言——程序执行的三大流程
顺序 : 从上向下, 顺序执行代码分支 : 根据条件判断, 决定执行代码的分支循环 : 让特定代码重复的执行...
二级MySQL(十)——单表查询
这里我们只在一个表内查询,用到的是较为简单的SELECT函数形式 1、查询指定的字段: 用到的数据库是之前提到的S、P、SP数据库 S表格用到的总数据: 首先我们查询所有供应商的序号和名字 这时都是独立的,没有关系,我们找…...
机器学习:无监督学习
文章目录 线性学习方法聚类ClusteringKmeansHAC 分布表示降维PCAMatrix FactorizationManifold LearningLLELaplacian Eigenmapst-SEN 线性学习方法 聚类Clustering Kmeans 随机选取K个中心,然后计算每个点与中心的距离,找最近的,然后更新中…...
计算机网络之5层网络协议
文章目录 引言一、OSI七层模型二、TCP/IP参考模型三、网络协议的概念和作用四、TCP/IP参考模型每层详细介绍1.物理层2.数据链路层1. 基本概念2.MAC地址3.ARP协议 3. 网络层1. 基本概念2.ip协议3.子网掩码 4. 传输层1. 基本概念2. 协议3. TCP(三次握手四次挥手&#…...
常见前端面试之VUE面试题汇总十一
31. Vuex 有哪几种属性? 有五种,分别是 State、 Getter、Mutation 、Action、 Module state > 基本数据(数据源存放地) getters > 从基本数据派生出来的数据 mutations > 提交更改数据的方法,同步 actions > 像一个装饰器&a…...
2021年12月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
第1题:书架 John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。 John共有N头奶牛(1 ≤ N ≤ 20,000),每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N头奶牛的总高度为S。书架高度为B(1 ≤…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...
电脑桌面太单调,用Python写一个桌面小宠物应用。
下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡,可以响应鼠标点击,并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...
