python pyinstaller pyqt 添加自定义图标到界面

问题描述 投票:0回答:1

我到处搜索,我不知道如何将自己的图标添加到界面。

我不需要知道如何更改应用程序图标或标题栏,我需要的是 PyInstaller 将编译后用于 GUI 中按钮的图像添加到可执行文件中。

我发现的最好的是这个,但它不起作用:

pyinstaller --clean --onefile --noconsole --icon="media/icon.png" -i="media/icon.png" --add-data="media/*;." main.py

我的图标显示在按钮中,但不是默认的 PyQt 图标,而是自定义的图标。

python pyqt pyinstaller
1个回答
0
投票

使用

--one-file
标志,当运行应用程序可执行文件时,pyinstaller 将所有文件解压到临时目录中,然后将该临时目录传递给
sys._MEIPASS
。因此,为了访问媒体文件夹中的图标文件,基本目录应从
sys._MEIPASS
开始。

import sys
from os import path
# If we're running the app as an executable or as a python script
if getattr(sys, "frozen", False):  
    # If it's an executable set the base directory to sys._MEIPASS
    base_directory = sys._MEIPASS
else:
    # Otherwise set it as the folder containing the main script
    base_directory = path.dirname(path.realpath("__file__"))

media_folder = path.join(base_directory, "media")
button_icon = path.join(media_folder, "button.png")

此外,您不必指定您

media/*
或使用
;
,因为最新版本的pyinstaller您只需说
--add-data=media:media

© www.soinside.com 2019 - 2024. All rights reserved.