Когда я попытался изменить значок окна в левом верхнем углу от уродливого красного "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
.