我有一個python GUI應用程序,我打算在Windows和Mac上使用。關於Tkinter的文檔並不是最好的,谷歌搜索已經讓我失望了。爲什麼在Python的Tkinter中使用canvas.create_image會中斷?
總之,我做:
c = Canvas(
master=frame,
width=settings.WINDOW_SIZE[0],
height=settings.WINDOW_SIZE[1],
background=settings.CANVAS_COLOUR
)
file = PhotoImage(file=os.path.join('path', 'to', 'gif'))
c.create_bitmap(position, image=file)
c.pack()
root.mainloop()
如果我註釋掉create_bitmap線,該應用程序吸引罰款。如果我早在評論它,我得到以下錯誤:
_tkinter.TclError: unknown option "-image"
這是奇怪的。根據python測試(即導入_tkinter,Tkinter和Tk()),Tkinter很好。自從我安裝了PIL以對抗我的Windows安裝程序(XP SP3,Python 2.6),想象它正在做一些低級別的繁重工作。它似乎不是;我仍然得到上述錯誤。
完整的堆棧跟蹤,但不包括我已經粘貼代碼,是:
File "C:\Python26\lib\lib-tk\Tkinter.py", line 2153, in create_bitmap
return self._create('bitmap', args, kw)
File "C:\Python26\lib\lib-tk\Tkinter.py", line 2147, in _create
*(args + self._options(cnf, kw))))
任何人都可以擺脫任何輕?
在你進一步嘗試在Mac上試用你的應用程序之前,我曾經在linux上製作過一個Tkinter應用程序,當我不得不將它移植到Mac時,它給了我惡夢:它運行在X(顯然沒有對Tkinter的本地支持),有很多bug在linux版本中不存在,它的工作看起來像sh ** Tkinter的文檔很少,面向命令行的API使調試非常痛苦,而且根據我的經驗,它不是可移植的。給自己一個忙,並用PyQt4或wxWindows編寫你的應用程序(我會推薦PyQt4用於面向對象的API和出色的文檔) – 2009-05-05 15:16:28