【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 ≤…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
