Уведомления

Группа в Telegram: @pythonsu

#1 Май 9, 2014 18:57:01

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

bookmark.xbm

Здравствуйте изучаю 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"
и хотелось бы узнать можно ли использовать не эти встроенные файлы а свои?

Офлайн

#2 Май 9, 2014 20:07:55

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

bookmark.xbm

Там ожидается несистемная иконка ./images/bookmark.xbm

Офлайн

#3 Май 9, 2014 20:17:41

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

bookmark.xbm

я в этой папке создаю такую иконку но все остается по прежнему

Офлайн

#4 Май 9, 2014 20:36:00

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

bookmark.xbm

Значит проблемы с форматом файла иконки.

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)

Офлайн

#5 Май 9, 2014 20:38:56

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

bookmark.xbm

а что это?!

Офлайн

#6 Май 9, 2014 20:41:15

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

bookmark.xbm

Это нужно записать в текстовый файл и назвать его “bookmark.xbm”. Положить его в ./images .

Отредактировано Shaman (Май 9, 2014 20:41:45)

Офлайн

#7 Май 9, 2014 20:48:12

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

bookmark.xbm

все заработало, а можете по подробней объяснить что это?

Офлайн

#8 Май 9, 2014 20:51:56

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

bookmark.xbm

Случайная иконка из набора linux, преобразованная Gimp-ом в формат xbm.
Описание формата тут: http://ru.wikipedia.org/wiki/X_BitMap

Офлайн

#9 Май 9, 2014 20:56:46

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

bookmark.xbm

а #define это библиотеки С++?

Офлайн

#10 Май 9, 2014 21:00:25

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

bookmark.xbm

Синтаксис C. Определеие и инициализация массива байтов.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version