最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用wxPython開發(fā)電腦信息二維碼生成器

 更新時間:2025年12月25日 08:19:01   作者:winfredzhang  
在日常工作中,我們經(jīng)常需要快速分享電腦的基本信息,今天我們就來開發(fā)一個實用的小工具——電腦信息二維碼生成器,只需一鍵就能將電腦信息生成二維碼,方便快捷地分享給他人

前言

在日常工作中,我們經(jīng)常需要快速分享電腦的基本信息,比如IP地址、MAC地址等。手動輸入不僅麻煩還容易出錯。今天我們就來開發(fā)一個實用的小工具——電腦信息二維碼生成器,只需一鍵就能將電腦信息生成二維碼,方便快捷地分享給他人。

項目需求

我們要實現(xiàn)一個桌面應(yīng)用程序,具備以下功能:

  • 自動獲取電腦的基本信息(名稱、IP、MAC地址、設(shè)備類型、操作系統(tǒng))
  • 支持中文文本輸入
  • 生成二維碼并預(yù)覽
  • 保存二維碼為圖片文件

技術(shù)選型

  • wxPython:跨平臺的GUI框架,界面美觀、易用
  • qrcode:Python二維碼生成庫
  • Pillow (PIL):圖像處理庫
  • psutil:系統(tǒng)信息獲取庫

環(huán)境準(zhǔn)備

首先安裝所需的依賴包:

pip install wxPython qrcode pillow psutil

運行界面

核心功能實現(xiàn)

1. 獲取電腦信息

這是程序的核心功能之一。我們需要獲取多種系統(tǒng)信息:

獲取電腦名稱

使用socket.gethostname()即可輕松獲?。?/p>

computer_name = socket.gethostname()

獲取IP地址和MAC地址

這里的難點是要獲取真正在使用的網(wǎng)卡信息,而不是所有網(wǎng)卡。我們使用psutil庫遍歷所有網(wǎng)絡(luò)接口,找到活動的網(wǎng)卡:

interfaces = psutil.net_if_addrs()
stats = psutil.net_if_stats()

for interface_name, interface_addresses in interfaces.items():
    if interface_name in stats and stats[interface_name].isup:
        for address in interface_addresses:
            # 獲取IPv4地址(排除回環(huán)地址)
            if address.family == socket.AF_INET:
                if not address.address.startswith('127.'):
                    ip_address = address.address
            # 獲取MAC地址
            elif address.family == psutil.AF_LINK:
                mac_address = address.address

這樣可以確保獲取的IP和MAC地址來自同一個活動網(wǎng)卡,信息更加準(zhǔn)確。

檢測設(shè)備類型(臺式機/筆記本)

通過檢測系統(tǒng)是否有電池來判斷設(shè)備類型:

def get_device_type(self):
    try:
        battery = psutil.sensors_battery()
        if battery is not None:
            return "筆記本電腦"
        else:
            return "臺式機"
    except:
        return "未知類型"

這個方法簡單有效,有電池的就是筆記本,沒有電池的就是臺式機。

獲取操作系統(tǒng)信息

使用platform模塊獲?。?/p>

os_info = platform.system() + " " + platform.release()

2. 界面設(shè)計

使用wxPython構(gòu)建用戶界面,采用垂直布局(BoxSizer):

vbox = wx.BoxSizer(wx.VERTICAL)

# 添加標(biāo)簽
label = wx.StaticText(panel, label='請輸入要生成二維碼的文字(支持中文):')
vbox.Add(label, flag=wx.LEFT|wx.TOP, border=10)

# 添加文本框
self.text_ctrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(560, 100))
vbox.Add(self.text_ctrl, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)

界面包含:

  • 提示標(biāo)簽
  • 自動填充和清空按鈕
  • 多行文本輸入框
  • 生成二維碼按鈕
  • 二維碼顯示區(qū)域
  • 保存按鈕

3. 二維碼生成

使用qrcode庫生成二維碼,并設(shè)置適當(dāng)?shù)膮?shù):

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,  # 高容錯率
    box_size=10,
    border=4,
)
qr.add_data(text)
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white")

參數(shù)說明:

  • version=1:二維碼的大小版本(1-40)
  • error_correction:容錯級別,選擇最高級別H
  • box_size=10:每個小方塊的像素大小
  • border=4:邊框大小

4. 圖像格式轉(zhuǎn)換

生成的二維碼需要轉(zhuǎn)換為wxPython可以顯示的格式:

# 調(diào)整圖像大小
img = img.resize((300, 300), Image.Resampling.LANCZOS)

# 轉(zhuǎn)換為wx.Image
buffer = BytesIO()
img.save(buffer, format='PNG')
buffer.seek(0)

wx_image = wx.Image(buffer)
wx_bitmap = wx.Bitmap(wx_image)

# 顯示二維碼
self.qr_bitmap.SetBitmap(wx_bitmap)

使用BytesIO作為中間緩沖區(qū),避免創(chuàng)建臨時文件。

5. 保存功能

使用wxPython的文件對話框,讓用戶選擇保存位置:

with wx.FileDialog(self, "保存二維碼",
                  wildcard="PNG files (*.png)|*.png",
                  style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) as fileDialog:
    
    if fileDialog.ShowModal() == wx.ID_CANCEL:
        return
    
    pathname = fileDialog.GetPath()
    self.current_qr_image.save(pathname)

程序亮點

1. 智能網(wǎng)卡識別

不是簡單獲取所有網(wǎng)卡信息,而是智能識別當(dāng)前正在使用的活動網(wǎng)卡,確保信息準(zhǔn)確性。

2. 真實MAC地址

通過psutil獲取網(wǎng)卡的真實MAC地址,而不是使用uuid生成的虛擬地址,更符合實際需求。

3. 設(shè)備類型檢測

自動判斷是臺式機還是筆記本,為用戶提供更完整的設(shè)備信息。

4. 完善的錯誤處理

在關(guān)鍵操作處添加try-except異常處理,并通過消息框友好地提示用戶。

5. 用戶體驗優(yōu)化

  • 自動填充按鈕:一鍵獲取所有信息
  • 清空按鈕:快速清除內(nèi)容
  • 實時預(yù)覽:生成后立即顯示
  • 支持中文:完美支持中文輸入和顯示

使用場景

  • IT運維:快速記錄和分享設(shè)備信息
  • 設(shè)備管理:為設(shè)備生成信息標(biāo)簽
  • 遠程協(xié)助:快速將電腦信息發(fā)送給技術(shù)支持人員
  • 資產(chǎn)管理:為公司電腦建立二維碼檔案

擴展思路

這個程序還可以繼續(xù)擴展:

  • 添加更多系統(tǒng)信息(CPU、內(nèi)存、硬盤等)
  • 支持自定義二維碼顏色和樣式
  • 添加二維碼識別功能
  • 批量生成功能
  • 導(dǎo)出為Excel或CSV格式
  • 添加Logo到二維碼中心
  • 支持多語言界面

總結(jié)

通過這個項目,我們學(xué)習(xí)了:

  • wxPython GUI編程的基本方法
  • 如何使用psutil獲取系統(tǒng)信息
  • 二維碼的生成和圖像處理
  • Python跨平臺桌面應(yīng)用開發(fā)

完整的代碼結(jié)構(gòu)清晰,功能實用,是一個很好的Python桌面應(yīng)用開發(fā)實踐項目。你可以在此基礎(chǔ)上根據(jù)自己的需求進行定制和擴展。

到此這篇關(guān)于Python使用wxPython開發(fā)電腦信息二維碼生成器的文章就介紹到這了,更多相關(guān)Python二維碼生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決keras backend 越跑越慢問題

    解決keras backend 越跑越慢問題

    這篇文章主要介紹了解決keras backend 越跑越慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat)

    DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat)

    這篇文章主要介紹了DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python中DDT數(shù)據(jù)驅(qū)動的實現(xiàn)

    python中DDT數(shù)據(jù)驅(qū)動的實現(xiàn)

    DDT是一種軟件測試方法,本文主要介紹了python中DDT數(shù)據(jù)驅(qū)動的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Python實現(xiàn)購物評論文本情感分析操作【基于中文文本挖掘庫snownlp】

    Python實現(xiàn)購物評論文本情感分析操作【基于中文文本挖掘庫snownlp】

    這篇文章主要介紹了Python實現(xiàn)購物評論文本情感分析操作,結(jié)合實例形式分析了Python使用中文文本挖掘庫snownlp操作中文文本進行感情分析的相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • 在pyqt5中QLineEdit里面的內(nèi)容回車發(fā)送的實例

    在pyqt5中QLineEdit里面的內(nèi)容回車發(fā)送的實例

    今天小編就為大家分享一篇在pyqt5中QLineEdit里面的內(nèi)容回車發(fā)送的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python Joblib庫使用方法案例總結(jié)

    Python Joblib庫使用方法案例總結(jié)

    Python Joblib庫是一個用于并行計算和數(shù)據(jù)預(yù)處理的工具庫。它可以幫助用戶快速處理大量數(shù)據(jù),提高計算效率。其中,最常用的功能是并行計算,可以使用多個CPU核心同時處理任務(wù),大大縮短計算時間。此外,Joblib還提供了一些數(shù)據(jù)預(yù)處理的功能,可以幫助用戶更好地處理數(shù)據(jù)
    2023-06-06
  • 使用Python進行視頻相似度比較實例

    使用Python進行視頻相似度比較實例

    這篇文章主要介紹了使用Python進行視頻相似度比較實例,本文通過漢明距離算法與圖片比較等方法對比兩個視頻流的相似度,文中提供了部分實現(xiàn)代碼與解決思路,需要的朋友可以參考下
    2023-07-07
  • 使用Python解析JSON的實現(xiàn)示例

    使用Python解析JSON的實現(xiàn)示例

    本文主要介紹了使用Python解析JSON的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 教你用Python寫一個水果忍者小游戲

    教你用Python寫一個水果忍者小游戲

    水果忍者游戲,又稱切水果游戲,玩法簡單,水果忍者游戲在兒童中很受歡迎,下面這篇文章主要給大家介紹了關(guān)于如何利用Python寫一個水果忍者小游戲的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • python實現(xiàn)梯度下降法

    python實現(xiàn)梯度下降法

    這篇文章主要為大家詳細介紹了python實現(xiàn)梯度下降法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評論

桃源县| 通江县| 大悟县| 甘孜县| 会昌县| 盘山县| 来宾市| 崇礼县| 县级市| 池州市| 阿拉善右旗| 股票| 会泽县| 句容市| 邻水| 板桥市| 邹平县| 全州县| 平江县| 苏州市| 潞城市| 榆社县| 石嘴山市| 平度市| 青海省| 沭阳县| 阿巴嘎旗| 沙湾县| 巴里| 工布江达县| 浙江省| 阿鲁科尔沁旗| 武隆县| 塘沽区| 贵定县| 和龙市| 苏尼特右旗| 太和县| 田东县| 攀枝花市| 商丘市|