Khi tôi cố gắng thay đổi biểu tượng cửa sổ ở góc trên cùng bên trái từ màu đỏ xấu xí "TK" để favicon riêng tôi bằng cách sử dụng mã dưới đây, Python ném một lỗi:Đặt biểu tượng cửa sổ
from tkinter import *
root = Tk()
#some buttons, widgets, a lot of stuff
root.iconbitmap('favicon.ico')
này nên đặt biểu tượng 'favicon.ico' (theo nhiều bài đăng trên diễn đàn trên toàn bộ web). Nhưng thật không may, tất cả các dòng này là ném các lỗi sau:
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
Những gì tôi đã làm:
- Tôi đã kiểm tra đường dẫn - tất cả mọi thứ là chính xác 100%
- tôi đã cố gắng định dạng file khác như
.png
hoặc.bmp
- không ai làm việc - tôi nhìn vấn đề này lên trên nhiều trang web
Và đối với điểm thứ ba, effbot.org, trang web yêu thích của tôi về Tkinter, nói với tôi rằng Windows bỏ qua hàm iconbitmap
. Nhưng điều này không giải thích lý do tại sao nó ném một lỗi!
Có một số cách "hack" để tránh vấn đề đó, nhưng không có cách nào trong số chúng được viết cho Python 3.x.
Vì vậy, câu hỏi cuối cùng của tôi là: Có cách nào để có biểu tượng tùy chỉnh sử dụng Python 3.x và Tkinter không?
Ngoài ra, đừng cho tôi biết tôi nên sử dụng Thư viện GUI khác. Tôi muốn chương trình của tôi hoạt động trên mọi nền tảng. Tôi cũng muốn có một phiên bản được mã hóa, không phải là giải pháp py2exe
hoặc sth
.
là 'favicon.ico' trong thư mục mà bạn đang chạy các kịch bản? Khác khôn ngoan bạn phải cung cấp đường dẫn đầy đủ. Ngoài ra, khi điều khác bạn có thể làm là thay đổi định dạng thành '.gif', tôi nghĩ đó là định dạng duy nhất mà tkinter chấp nhận. – enginefree
@enginefree - Không. Tkinter cũng chấp nhận '.ico'. – iCodez