Форум сайта python.su
0
Здравствуйте изучаю python и натолкнулся вот на такую проблемм, я пользуюсь операционной системой mint и изучаю по книке как создаются графические приложения при помощи модуля tkinter. Проблемма во в чем
application = tkinter.Tk() path = os.path.join(os.path.dirname(__file__), "images/") if sys.platform.startswith("win"): icon = path + "bookmark.ico" application.iconbitmap(icon, default=icon) else: application.iconbitmap("@" + path + "bookmark.xbm") window = MainWindow(application) application.protocol("WM_DELETE_WINDOW", window.fileQuit) application.mainloop()
serrrgggeee@serrrgggeee-Satellite-L40 ~/Загрузки/pyt/py3eg $ python3 bookmarks-tk.pyw Traceback (most recent call last): File "bookmarks-tk.pyw", line 338, in <module> application.iconbitmap("@" + path + "bookmark.xbm") File "/usr/lib/python3.3/tkinter/__init__.py", line 1640, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, bitmap) _tkinter.TclError: error reading bitmap file "images/bookmark.xbm"
Офлайн
88
Там ожидается несистемная иконка ./images/bookmark.xbm
Офлайн
0
я в этой папке создаю такую иконку но все остается по прежнему
Офлайн
88
Значит проблемы с форматом файла иконки.
bookmark.xbm для теста
#define bookmark_width 32
#define bookmark_height 32
static unsigned char bookmark_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xfe, 0x7f, 0x00,
0x00, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
0xf0, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x1f,
0x8c, 0x1f, 0x30, 0x3e, 0x8c, 0x3f, 0x30, 0x3e, 0x0c, 0x32, 0x20, 0x3e,
0x0e, 0xf0, 0x3d, 0x7e, 0x0e, 0xe0, 0x3f, 0x7c, 0x0f, 0x09, 0x30, 0x40,
0x0f, 0x1f, 0x20, 0x00, 0x0f, 0x32, 0x30, 0x40, 0x0f, 0xf0, 0x37, 0x5a,
0x0e, 0xe0, 0x3f, 0x7e, 0x8e, 0x14, 0x30, 0x7c, 0x0e, 0x1f, 0x30, 0x7e,
0x8c, 0x1f, 0x20, 0x3e, 0xbc, 0x7f, 0x69, 0x3d, 0xf8, 0xff, 0xff, 0x1f,
0xf0, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0x07,
0xc0, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0x00, 0x00, 0xfe, 0x7f, 0x00,
0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00 };
Отредактировано Shaman (Май 9, 2014 20:36:39)
Офлайн
0
а что это?!
Офлайн
88
Это нужно записать в текстовый файл и назвать его “bookmark.xbm”. Положить его в ./images .
Отредактировано Shaman (Май 9, 2014 20:41:45)
Офлайн
0
все заработало, а можете по подробней объяснить что это?
Офлайн
88
Случайная иконка из набора linux, преобразованная Gimp-ом в формат xbm.
Описание формата тут: http://ru.wikipedia.org/wiki/X_BitMap
Офлайн
0
а #define это библиотеки С++?
Офлайн
88
Синтаксис C. Определеие и инициализация массива байтов.
Офлайн