PyQt5开发桌面程序二(获取公网ip)

前言:由于云服务器中设置了安全组,需要填写公网ip地址。家庭公网ip总变,所以安全组中需要不断更换。之前都是通过百度IP地址,最近发现百度ip后搜索列表中的公网ip地址结果不见了,还需要进入某个链接,十分不爽。干脆现学现卖,做个桌面程序,省了几道步骤。

资源链接:https://download.csdn.net/download/yuhan_0590/11662900

第一步:创建一个UI文件

第二步:点击保存,回到pycharm,可以看到工程目录下已经产生了pyqt.ui,右键它,Qt—>Pyuic,点击后即可产生pyqt.py文件

如果需要修改ui文件,最好先将py文件做个备份,因为每次转换为.py时会覆盖之前的py文件。

第三步:定义一个main函数调用

import sys

from pyqt import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlot
import requests

class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)

    @pyqtSlot()
    def on_pushButton_clicked(self):
        my_ip = requests.get('http://ip.42.pl/raw').text
        print(my_ip)
        self.plainTextEdit.setPlainText(my_ip)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    sys.exit(app.exec_())

第四部:打包

安装一个pyinstaller

pip install pyinstaller

 在命令行下执行

D:\pyworkspace\dafeiji\pyqt>Pyinstaller -F -w main.py

 -F 选项指定生成单个的可执行程序,-w 选项指定生成图形用户界面程序(不需要命令行界面)

生成了一个 dist 子目录,并在该子目录下生成了一个 main.exe 文件

执行后出现ImportError: unable to find Qt5Core.dll on PATH 错误,通过参考其他大神的解释,就是有的版本pyqt5库对系统变量的加载存在bug。对有bug的版本库提供一种办法就是,在主程序中pyqt5库import之前就对系统变量进行手动设置

import sys, os
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from pyqt import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlot
import requests

修改之后打包程序就不会报错了。

后记:我就做了一个页面,一个label,一个plaintext,一个button,打包出来有36M多,开什么玩笑,怎么才能小点,希望各位不吝赐教。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值