当前位置: 首页 > news >正文

显示本地 IP 地址和相应的 QR 码,方便用户共享和访问网络信息

这段代码使用了 wxPython、socket、qrcode 和 PIL(Python Imaging Library)模块来生成一个具有本地 IP 地址和相应 QR 码的窗口应用程序。
C:\pythoncode\new\showipgenqrcode.py
在这里插入图片描述

让我们逐行解释代码的功能:

  1. import wx:导入 wxPython 模块,用于创建 GUI 应用程序的窗口和控件。
  2. import socket:导入 socket 模块,用于获取本地 IP 地址。
  3. import qrcode:导入 qrcode 模块,用于生成 QR 码。
  4. from PIL import Image:从 PIL(Python Imaging Library)模块中导入 Image 类,用于将 QR 码转换为图像文件。

接下来是定义一个类 MyFrame,继承自 wxPython 的 wx.Frame 类,用于创建窗口应用程序。在 __init__ 方法中:

  1. super().__init__(None, title="IP Address and QR Code", size=(400, 300)):调用父类的构造函数,创建一个窗口,并设置标题和大小。
  2. panel = wx.Panel(self):创建一个面板,用于放置其他控件。
  3. ip_address = socket.gethostbyname(socket.gethostname()):使用 socket 模块获取本地 IP 地址。
  4. qr = qrcode.QRCode(version=1, box_size=10, border=4):创建一个 QRCode 对象,指定版本、方块大小和边框宽度。
  5. qr.add_data(ip_address):将本地 IP 地址添加到 QRCode 对象中。
  6. qr.make(fit=True):生成 QR 码图像。
  7. qr_image = qr.make_image(fill_color="black", back_color="white"):根据 QRCode 对象生成图像,设置前景色和背景色。
  8. temp_file = "temp_qrcode.png":指定临时文件的名称。
  9. qr_image.save(temp_file):将 QR 码图像保存为临时文件。
  10. qr_bitmap = wx.Bitmap(temp_file, type=wx.BITMAP_TYPE_PNG):使用临时文件创建位图对象。
  11. ip_label = wx.StaticText(panel, label=f"IP Address: {ip_address}"):创建一个静态文本控件,显示 IP 地址。
  12. qr_bitmap_ctrl = wx.StaticBitmap(panel, bitmap=qr_bitmap):创建一个静态位图控件,显示 QR 码图像。
  13. sizer = wx.BoxSizer(wx.VERTICAL):创建一个垂直布局管理器。
  14. sizer.Add(ip_label, 0, wx.ALL, 10):将 IP 地址文本控件添加到布局中,并设置边距。
  15. sizer.Add(qr_bitmap_ctrl, 0, wx.ALL, 10):将 QR 码位图控件添加到布局中,并设置边距。
  16. 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 码,方便用户共享和访问网络信息。

http://www.lryc.cn/news/147838.html

相关文章:

  • 为什么建议同时学多门编程语言
  • langchain agent
  • Zabbix下载安装及SNMP Get使用
  • freee Programming Contest 2023(AtCoder Beginner Contest 310)
  • 恒运资本:概念股是什么意思
  • 十九、状态模式
  • MySQL用navicat工具对表进行筛选查找
  • 音视频 ffplay简单过滤器
  • 索引 事务 存储引擎
  • MySQL— 基础语法大全及操作演示!!!(事务)
  • xsschallenge1~13通关详细教程
  • 考生作弊行为分析算法
  • Python 操作 Redis 数据库介绍
  • 十年JAVA搬砖路——软件工程概述
  • 前后端项目部署上线详细笔记
  • Android 蓝牙开发( 二 )
  • C#调用barTender打印标签示例
  • Spring——Spring读取文件
  • 这是一条求助贴(postman测试的时候一直是404)
  • 信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(四):有损传输线建模
  • elk日志收集系统
  • perl 语言中 AUTOLOAD 的用法
  • 服务器放在香港好用吗?
  • C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)
  • Docker技术--WordPress博客系统部署初体验
  • 提高代码可读性和可维护性的命名建议
  • Docker基础入门:Docker网络与微服务项目发布
  • Docker安装详细步骤
  • 十六、pikachu之SSRF
  • 最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码