Когда я попытался изменить значок окна в левом верхнем углу от уродливого красного "TK" до моего собственного значка с помощью приведенного ниже кода, Python сделал ошибку:
from tkinter import *
root = Tk()
#some buttons, widgets, a lot of stuff
root.iconbitmap('favicon.ico')
Это означает, что значок должен быть "favicon.ico" (согласно большому количеству сообщений в форумах по всему Интернету). Но, к сожалению, вся эта строка выводит следующую ошибку:
Traceback (most recent call last):
File "d:\ladvclient\mainapp.py", line 85, in <module>
root.iconbitmap(bitmap='favicon.ico')
File "C:\Python33\lib\tkinter\__init__.py", line 1637, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "favicon.ico" not defined
Что я уже сделал:
- Я проверил путь - все на 100% правильно
- Я пробовал другие форматы файлов, такие как
.pngили.bmp- никто не работал - Я рассмотрел эту проблему на многих веб-сайтах.
И для третьего пункта, effbot.org, мой любимый сайт о Tkinter, сказал мне, что Windows игнорирует функцию iconbitmap.
Но это не объясняет, почему это порождает ошибку!
Есть некоторые "хакерские" способы избежать этой проблемы, но ни один из них не написан для Python 3.x.
Итак, мой последний вопрос: есть ли способ получить пользовательский значок с помощью Python 3.x и Tkinter?
Кроме того, не говорите мне, что я должен использовать другую библиотеку графического интерфейса. Я хочу, чтобы моя программа работала на каждой платформе. Я также хочу кодированную версию, а не решение py2exe или sth.