显示本地 IP 地址和相应的 QR 码,方便用户共享和访问网络信息
这段代码使用了 wxPython、socket、qrcode 和 PIL(Python Imaging Library)模块来生成一个具有本地 IP 地址和相应 QR 码的窗口应用程序。
C:\pythoncode\new\showipgenqrcode.py

让我们逐行解释代码的功能:
import wx:导入 wxPython 模块,用于创建 GUI 应用程序的窗口和控件。import socket:导入 socket 模块,用于获取本地 IP 地址。import qrcode:导入 qrcode 模块,用于生成 QR 码。from PIL import Image:从 PIL(Python Imaging Library)模块中导入 Image 类,用于将 QR 码转换为图像文件。
接下来是定义一个类 MyFrame,继承自 wxPython 的 wx.Frame 类,用于创建窗口应用程序。在 __init__ 方法中:
super().__init__(None, title="IP Address and QR Code", size=(400, 300)):调用父类的构造函数,创建一个窗口,并设置标题和大小。panel = wx.Panel(self):创建一个面板,用于放置其他控件。ip_address = socket.gethostbyname(socket.gethostname()):使用 socket 模块获取本地 IP 地址。qr = qrcode.QRCode(version=1, box_size=10, border=4):创建一个 QRCode 对象,指定版本、方块大小和边框宽度。qr.add_data(ip_address):将本地 IP 地址添加到 QRCode 对象中。qr.make(fit=True):生成 QR 码图像。qr_image = qr.make_image(fill_color="black", back_color="white"):根据 QRCode 对象生成图像,设置前景色和背景色。temp_file = "temp_qrcode.png":指定临时文件的名称。qr_image.save(temp_file):将 QR 码图像保存为临时文件。qr_bitmap = wx.Bitmap(temp_file, type=wx.BITMAP_TYPE_PNG):使用临时文件创建位图对象。ip_label = wx.StaticText(panel, label=f"IP Address: {ip_address}"):创建一个静态文本控件,显示 IP 地址。qr_bitmap_ctrl = wx.StaticBitmap(panel, bitmap=qr_bitmap):创建一个静态位图控件,显示 QR 码图像。sizer = wx.BoxSizer(wx.VERTICAL):创建一个垂直布局管理器。sizer.Add(ip_label, 0, wx.ALL, 10):将 IP 地址文本控件添加到布局中,并设置边距。sizer.Add(qr_bitmap_ctrl, 0, wx.ALL, 10):将 QR 码位图控件添加到布局中,并设置边距。panel.SetSizerAndFit(sizer):将布局管理器应用于面板。
全部代码
import wx
import socket
import qrcode
from PIL import Imageclass MyFrame(wx.Frame):def __init__(self):super().__init__(None, title="IP Address and QR Code", size=(400, 300))panel = wx.Panel(self)# 获取本地 IP 地址ip_address = socket.gethostbyname(socket.gethostname())# 生成 QR 码qr = qrcode.QRCode(version=1, box_size=10, border=4)qr.add_data(ip_address)qr.make(fit=True)# 将 QR 码转换为图片qr_image = qr.make_image(fill_color="black", back_color="white")# 将图片保存为临时文件temp_file = "temp_qrcode.png"qr_image.save(temp_file)# 创建位图对象qr_bitmap = wx.Bitmap(temp_file, type=wx.BITMAP_TYPE_PNG)# 在面板上显示 IP 地址和 QR 码ip_label = wx.StaticText(panel, label=f"IP Address: {ip_address}")qr_bitmap_ctrl = wx.StaticBitmap(panel, bitmap=qr_bitmap)sizer = wx.BoxSizer(wx.VERTICAL)sizer.Add(ip_label, 0, wx.ALL, 10)sizer.Add(qr_bitmap_ctrl, 0, wx.ALL, 10)panel.SetSizerAndFit(sizer)if __name__ == '__main__':app = wx.App()frame = MyFrame()frame.Show()app.MainLoop()
最后,我们在 if __name__ == '__main__': 块中创建了 wxPython 应用程序的实例,并运行应用程序的主循环(app.MainLoop())。这将显示窗口应用程序并等待用户交互。
该应用程序窗口将显示本地 IP 地址和相应的 QR 码,方便用户共享和访问网络信息。
相关文章:
显示本地 IP 地址和相应的 QR 码,方便用户共享和访问网络信息
这段代码使用了 wxPython、socket、qrcode 和 PIL(Python Imaging Library)模块来生成一个具有本地 IP 地址和相应 QR 码的窗口应用程序。 C:\pythoncode\new\showipgenqrcode.py 让我们逐行解释代码的功能: import wx:导入 wx…...
为什么建议同时学多门编程语言
晨读一本名叫《4点起床》的书,书中有一段描述与最近学习编制语言时自己的感受完全一致。算是一个小经验,分享给大家。 书中有一章的标题为《同时学六国语言记起来比较快》,其中有两段描述如下: 为什么我推荐大家同时学不同的语言…...
langchain agent
zero-shot-react-description 代码 from langchain.agents import initialize_agent from langchain.llms import OpenAI from langchain.tools import BaseTool import os os.environ[OPENAI_API_KEY]"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"# 搜索…...
Zabbix下载安装及SNMP Get使用
帮助文档:6. Zabbix Appliance 一、zabbix下载安装 1、获取Zabbix Appliance镜像 Download Zabbix appliance 2、使用该镜像创建虚拟机 3、打开虚拟机控制台自动安装,等待安装完成即可 默认配置 系统/数据库:root:zabbix Zabbix 前端&am…...
freee Programming Contest 2023(AtCoder Beginner Contest 310)
文章目录 A - Order Something Else(模拟)B - Strictly Superior(模拟)C - Reversible(模拟)D - Peaceful Teams(DFS状压)E - NAND repeatedly(普通dp)F - Make 10 Again(状态压缩概率dp&#x…...
恒运资本:概念股是什么意思
概念股是指在特定的经济布景、方针环境、职业远景或社会热点等方面具有某种特别的发展远景和投资价值的股票。在投资者心目中,概念股的危险较大,可是或许带来高于商场平均水平的收益率。那么,概念股到底是什么意思?在本文中&#…...
十九、状态模式
一、什么是状态模式 状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 状态模式包含以下主要角色: 环境类(…...
MySQL用navicat工具对表进行筛选查找
这个操作其实很简单,但是对于没操作的人来说,就是不会呀。所以小编出这一个详细图解,希望能够帮助到大家。话不多说看图。 第一步: 点进一张表,点击筛选。 第二步: 点击添加 第三步: 选择要…...
音视频 ffplay简单过滤器
视频旋转 ffplay -i test.mp4 -vf transpose1视频反转 ffplay test.mp4 -vf hflip ffplay test.mp4 -vf vflip视频旋转和反转 ffplay test.mp4 -vf hflip,transpose1音频变速播放 ffplay -i test.mp4 -af atempo2视频变速播放 ffplay -i test.mp4 -vf setptsPTS/2音视频同…...
索引 事务 存储引擎
################索引##################### 一、索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来…...
MySQL— 基础语法大全及操作演示!!!(事务)
MySQL—— 基础语法大全及操作演示(事务) 六、事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 MySQL— 基础语法大全及操作演示!!!…...
xsschallenge1~13通关详细教程
文章目录 XSS 挑战靶场通关level1level2level3level4level5level6level7level8level9level10level11level12level13 XSS 挑战靶场通关 level1 通过观察发现这个用户信息可以修改 那么我们直接输入攻击代码 <script>alert(/wuhu/)</script>弹框如下: …...
考生作弊行为分析算法
考生作弊行为分析系统利用pythonyolo系列网络模型算法框架,考生作弊行为分析算法利用图像处理和智能算法对考生的行为进行分析和识别,经过算法服务器的复杂计算和逻辑判断,算法将根据考生行为的特征和规律,判定是否存在作弊行为。…...
Python 操作 Redis 数据库介绍
Redis 作为常用的 NoSql 数据库,主要用于缓存数据,提高数据读取效率,那在 Python 中应该如果连接和操作 Redis 呢?今天就为大概简单介绍下,在 Python 中操作 Redis 常用命令。 安装 redis 首先还是需要先安装 redis …...
十年JAVA搬砖路——软件工程概述
软件工程是一门关注软件开发过程的学科,它涉及到软件的设计、开发、测试、部署和维护等方面。软件工程的目标是通过系统化的方法和工具,以确保软件项目能够按时、按预算和按要求完成。 • 软件工程的7个基本概念: 软件生命周期:软…...
前后端项目部署上线详细笔记
部署 参考文章:如何部署网站?来比比谁的方法多 - 哔哩哔哩大家好,我是鱼皮,不知道朋友们有没有试着部署过自己开发的网站呢?其实部署网站非常简单,而且有非常多的花样。这篇文章就给大家分享几种主流的前端…...
Android 蓝牙开发( 二 )
前言 上一篇文章给大家分享了Android蓝牙的基础知识和基础用法,不过上一篇都是一些零散碎片化的程序,这一篇给大家分享Android蓝牙开发实战项目的初步使用 效果演示 : Android蓝牙搜索,配对,连接,通信 Android蓝牙实…...
C#调用barTender打印标签示例
使用的电脑需要先安装BarTender 我封装成一个类 using System; using System.Windows.Forms;namespace FT_Tools {public class SysContext{public static BarTender.Application btapp new BarTender.Application();public static BarTender.Format btFormat;public void Q…...
Spring——Spring读取文件
文章目录 1.通过 value 读取比较简单的配置信息2.通过ConfigurationProperties读取并与 bean 绑定3.通过ConfigurationProperties读取并校验4. PropertySource 读取指定 properties 文件5.题外话:Spring加载配置文件的优先级 很多时候我们需要将一些常用的配置信息比如阿里云os…...
这是一条求助贴(postman测试的时候一直是404)
看到这个问题是404的时候总感觉不该求助大家,404多常见一看就是简单的路径问题,我的好像不是,我把我的问题奉上。 首先我先给出我的url http://10.3.22.195:8080/escloud/rest/escloud_contentws/permissionStatistics/jc-haojl/sz 这是我…...
Onnxruntime模型量化实战:从PTQ到精度调优
1. Onnxruntime模型量化入门指南 第一次接触模型量化时,我也被各种术语搞得晕头转向。简单来说,量化就是把模型参数从32位浮点数转换为8位整数,就像把高清图片压缩成更小的文件。Onnxruntime作为业界领先的推理引擎,提供了完整的量…...
Unity序列化为何拒绝多态
一个让无数开发者抓狂的"bug",其实是一个深思熟虑的设计决策 一、开篇:一个周五下午的惨案 故事从一个看似完美的设计开始。 你正在开发一个RPG游戏的技能系统。你学过面向对象,你知道继承和多态是好东西。于是你写出了这样优雅的代码: [System.Serializable]…...
RexUniNLU硬件加速:TensorRT推理优化实践
RexUniNLU硬件加速:TensorRT推理优化实践 想让你的RexUniNLU模型推理速度飞起来吗?尤其是在T4这类消费级显卡上,看着模型慢悠悠地吐出结果,是不是有点着急?今天咱们就来聊聊怎么用TensorRT给RexUniNLU“打一针强心剂”…...
从51到STM32:手把手教你用STM32CubeMX和PWM驱动智能小车电机(附代码避坑)
从51到STM32:智能小车电机控制的进阶实战指南 十年前用51单片机做智能小车时,PWM配置需要手动计算定时器重装载值,而今天在STM32CubeMX里勾选几下就能生成精准的PWM信号——这就像从手动挡升级到了自动驾驶。作为过来人,我完整记…...
Generalized Mask-aware IoU for Anchor Assignment for Real-time Instance Segmentation—面向实时实例分割的锚点分配方法
《广义掩膜感知IoU:面向实时实例分割的锚点分配方法》主要研究并解决实时实例分割任务中锚点分配不准确的问题。其核心创新在于提出了一种新的度量标准——广义掩膜感知交并比,并将其应用于锚点的正负样本分配,从而显著提升了模型的性能与效率…...
别再瞎猜了!手把手教你用公式算清摄像头MIPI Lane数(附Excel计算器)
摄像头MIPI Lane数计算实战:从理论到Excel工具全解析 在嵌入式摄像头模组开发中,MIPI Lane数的选择往往让工程师陷入两难:Lane数不足会导致数据吞吐瓶颈,而过度配置又会增加功耗和成本。我曾见过一个团队因为凭经验选择了2 Lane配…...
惊艳!Pi0具身智能v1动作轨迹可视化:关节控制曲线清晰呈现
惊艳!Pi0具身智能v1动作轨迹可视化:关节控制曲线清晰呈现 1. 具身智能的动作可视化革命 在机器人实验室里,工程师小李正盯着屏幕上一堆杂乱的数据点发愁——这是他们最新研发的机械臂在执行抓取任务时生成的关节角度数据。理论上这些数字应…...
SiameseAOE中文-base多场景落地:金融投诉文本中‘服务态度’‘处理时效’双抽取
SiameseAOE中文-base多场景落地:金融投诉文本中‘服务态度’‘处理时效’双抽取 1. 模型简介 SiameseAOE通用属性观点抽取-中文-base是一个专门用于中文文本信息抽取的AI模型。它基于先进的提示(Prompt)文本(Text)构…...
零代码驯服Qwen-2.5VL:LLaMA-Factory图形界面实战指南
1. 为什么你需要零代码驯服Qwen-2.5VL 想象一下,你手里有一台能看懂图片的AI机器人,但它总把工业零件认成厨房用具。传统解决方法需要你租用几十张显卡,像炼丹一样折腾几个月——但现在,有了LLaMA-Factory的图形界面,这…...
基于MATLAB RVC与Simulink的ABB-IRB-1200运动学建模及轨迹规划实战
1. ABB-IRB-1200机械臂与MATLAB RVC工具箱初探 第一次接触ABB-IRB-1200这款机械臂时,我就被它精巧的设计所吸引。这款机械臂有两种型号,工作范围分别是700mm和900mm,最大有效负载分别为7kg和5kg。别看它体积小,在狭小空间内作业时…...
