zoenbo 发表于 2021-5-17 11:39

Python大佬们看看打包EXE时图标的问题

本帖最后由 zoenbo 于 2021-5-17 18:41 编辑

把py打包EXE后,标题栏的图标始终不显示。百度过各种解决方法,没一个能解决的。主要就是想把ICO和EXE打包在一起,不是调用。也用过改spec也不好使~求助解决方法~

# -*- coding:utf-8 -*-
import wx

class Frame(wx.Frame):
    def __init__(self):
      wx.Frame.__init__(self, None, title='Title', size=(400, 210),name='frame',style=541072384)
      icon = wx.Icon(r'D:\Downloads\1.ico')
      self.SetIcon(icon)
      self.启动窗口 = wx.Panel(self)
      self.Centre()
      self.编辑框1 = wx.TextCtrl(self.启动窗口,size=(350, 143),pos=(15, 14),value='夏天来了,有点热',name='text',style=1073741856)

class myApp(wx.App):
    defOnInit(self):
      self.frame = Frame()
      self.frame.Show(True)
      return True

if __name__ == '__main__':
    app = myApp()
    app.MainLoop()

ReLoading 发表于 2021-5-17 17:28

本帖最后由 ReLoading 于 2021-5-17 17:32 编辑

zoenbo 发表于 2021-5-17 17:02
大佬有没有直接打包打进EXE的方法呢?调用网上的没有心仪的图标,没网情况下可能会弹出错误提示吧
### 加个判断的事儿,捕获一下异常 避免网络出错,剩下的自由发挥
# -*- coding:utf-8 -*-
import wx,os
from requests import get
# locale.setlocale(locale.LC_ALL, ('de_CH', 'GBK'))

class Frame(wx.Frame):
    def __init__(self):
      wx.Frame.__init__(self, None, title='Title', size=(400, 210),name='frame',style=541072384)
      # 如果图标文件被下载到硬盘路径下,除非用户找到并删除
      path = 'logo.ico'   #这里可以定义绝对路径 例如 c盘
      if not os._exists(path):#判断图标文件是否存在,不存在就下载
            try: #捕捉网络IO错误,网络资源不存在或者没有网络不会异常;
                _bin = get('https://www.52pojie.cn/favicon.ico').content
                with open(path,'wb') as F:
                  F.write(_bin)
            except Exception as E:
                print(E.args)
      else:#判断图标文件是否存在,存在则设置图标(避免异常)
            icon = wx.Icon(path)
            self.SetIcon(icon)
      self.启动窗口 = wx.Panel(self)
      self.Centre()
      self.编辑框1 = wx.TextCtrl(self.启动窗口,size=(350, 143),pos=(15, 14),value='夏天来了,有点热',name='text',style=1073741856)

class myApp(wx.App):
    defOnInit(self):
      self.frame = Frame()
      self.frame.Show(True)
      return True

if __name__ == '__main__':
    app = myApp()
    app.MainLoop()

鸭鸭鸭? 发表于 2021-5-17 11:57

文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的

zoenbo 发表于 2021-5-17 12:05

鸭鸭鸭? 发表于 2021-5-17 11:57
文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的

打包时我是按相对路径的,这个例子忘改了。就是相对路径也不好使。不用wx和pyQT好像直接打包就有图标.

昨日黎明 发表于 2021-5-17 12:07

如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖

C哥888 发表于 2021-5-17 12:13

鸭鸭鸭? 发表于 2021-5-17 11:57
文件路径建议相对路径,打包时用命令将图标文件一并打包进去,具体wx我没用过,tkinter是这样的

图形化界面,建议你去学pyside2,千万不要去学tkinter。

超人强 发表于 2021-5-17 12:48


pyinstaller -F-i run.ico run.py

zoenbo 发表于 2021-5-17 13:02

超人强 发表于 2021-5-17 12:48
pyinstaller -F-i run.ico run.py

我用的就是这个,就是标题栏ico不能显示

Gaho2002 发表于 2021-5-17 13:03

前来观摩

zoenbo 发表于 2021-5-17 13:03

昨日黎明 发表于 2021-5-17 12:07
如果一点问题都没有可能是因为图标被覆盖了,实际上窗体都是绘制出来的,可能会存在覆盖

应该是就是没打包进去,大部分教程都是说路径问题

q546624527 发表于 2021-5-17 13:16

把图标文件转换为二进制文件,然后导入
页: [1] 2 3
查看完整版本: Python大佬们看看打包EXE时图标的问题