Найти - Пользователи
Полная версия: bookmark.xbm
Начало » Python для новичков » bookmark.xbm
1 2
serrrgggeee
Здравствуйте изучаю 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()
этот код запускает приложение и условие если это не виндовс то выполняется else и не срабатывает во этот код application.iconbitmap(“@” + path + “bookmark.xbm”) как я понял должны быть файлы операционной системы xbm но вот что выдает консоль
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"
и хотелось бы узнать можно ли использовать не эти встроенные файлы а свои?
Shaman
Там ожидается несистемная иконка ./images/bookmark.xbm
serrrgggeee
я в этой папке создаю такую иконку но все остается по прежнему
Shaman
Значит проблемы с форматом файла иконки.

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 };
serrrgggeee
а что это?!
Shaman
Это нужно записать в текстовый файл и назвать его “bookmark.xbm”. Положить его в ./images .
serrrgggeee
все заработало, а можете по подробней объяснить что это?
Shaman
Случайная иконка из набора linux, преобразованная Gimp-ом в формат xbm.
Описание формата тут: http://ru.wikipedia.org/wiki/X_BitMap
serrrgggeee
а #define это библиотеки С++?
Shaman
Синтаксис C. Определеие и инициализация массива байтов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB