Автор оригинала: Mike Driscoll.
Я получил вопрос о том, как поставить изображение в панели инструментов моей рамки на Windows. Как это так, панель инструментов просто использует общий значок. Есть три способа, о которых я знаю. Первый – получить встроенное изображение из исполняемого файла. Во-вторых – сделать некоторое изображение, которое у вас есть и просто встраивало его. Последний способ – снизить ваше изображение и включить его в файл Python, который можно импортировать. Я уверен, что вы также можете связываться с Pil или, возможно, даже использовать обработчик краски, но я не знаю этого.
Я говорю о том, чтобы получить встроенное изображение с исполняемого файла. Это на самом деле довольно просто. Вот основная идея:
import wx class MyForm(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, 'Image Extractor') # Add a panel so it looks the correct on all platforms self.panel = wx.Panel(self, wx.ID_ANY) loc = wx.IconLocation(r'L:\Python25\python.exe', 0) self.SetIcon(wx.IconFromLocation(loc)) # Run the program if __name__ == '__main__': app = wx.PySimpleApp() frame = MyForm().Show() app.MainLoop()
В этом примере я схватив значок Python 2.5 из Python.exe, используя следующую строку:
loc = wx.IconLocation(r'L:\Python25\python.exe', 0)
Затем я установил значок кадра с помощью Seticon (). Обратите внимание, что мне также нужно использовать WX.ICONFROMLOCTIONALODION (LOC), который я гнежу в вызове Seticon ().
Далее я поговорю, просто используя любое изображение, которое у вас есть под рукой. Единственное различие между этим кодом и кодом выше состоит в том, что я получил из-за вызовов в WX.IConlocation и WX.ICONFROMLOOCE и добавил объект WX.ICON. Объект WX.ICON просто нужен путь к значке и флаге WX.BITMAP_TYPE_ICO. Смотрите полный код ниже:
import wx class MyForm(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, 'Image Extractor') # Add a panel so it looks the correct on all platforms self.panel = wx.Panel(self, wx.ID_ANY) ico = wx.Icon('py.ico', wx.BITMAP_TYPE_ICO) self.SetIcon(ico) # Run the program if __name__ == '__main__': app = wx.PySimpleApp() frame = MyForm().Show() app.MainLoop()
Последний способ сделать это, может быть лучшим. В нем я беру икону или изображение и включаю его в файл Python, используя утилиту WX IMG2PY. Почему это может быть лучшим? Потому что путем встраивания файла изображения в файл Python вы упрощаете процесс распространения вашего приложения с PY2EXE. По крайней мере, это был мой опыт.
На моем ПК здесь можно найти утилиту IMG2PY:
C: \ python25 \ lib \ сайт-пакеты \ wx-2.8-msw-unicode \ wx \ tools>
Отрегулируйте по мере необходимости для вашей настройки. Откройте командный окно и перейдите к этому каталогу. Затем введите следующую команду:
python img2py.py -i путь/к/ваш/icon.ico myicon.py
Первый аргумент img2py.py – это -I, который сообщает утилиту, которую вы встраиваете значок. Далее путь к файлу значка. Наконец, вы даете имя файла, который вы хотите, чтобы IMG2PY создать (то есть. Встроить значок в). Теперь скопируйте файл Python, который вы только что создали в папку, которая содержит ваш сценарий WXPYPHON, поэтому он может импортировать его (или вы можете просто скопировать код из файла Python в текст приложения, который вы создаете).
Я собираюсь импортировать его для этого примера. Чтобы получить значок, вы называете метод Geticon () в файле значка I Imported. Проверьте код, чтобы увидеть, что я делаю:
import wx import myIcon class MyForm(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, 'Image Extractor') # Add a panel so it looks the correct on all platforms self.panel = wx.Panel(self, wx.ID_ANY) ico = myIcon.getIcon() self.SetIcon(ico) # Run the program if __name__ == '__main__': app = wx.PySimpleApp() frame = MyForm().Show() app.MainLoop()
Надеюсь, этот учебник помог вам узнать, как использовать свой значок в вашем приложении. Помните, что вы можете использовать эти методы для любого изображения, которое вы хотите вставить; Не только для значка строки заголовка, но для любого статического изображения вы бы использовали в вашем приложении, например значок панели задач или значок панели инструментов. Удачи!
Дальше чтение: Wxpython Wiki – мигающий значок панели задач
Загрузки:
EBREDDED-ICON-CODE.ZIP встроенный значок-код .TAR