Недавно организовалось немного свободного времени и я решил немного поковырять питон. Для начала я затагал версию 0.1 рандоратора, после чего приступил к реализации графической морды на wxWidgets (неквадратные элементы окна и иконка [а в Tk только под вин работает =( ] прилагаются), заодно исправил кучу ошибок, облагородил исходники (в том числе лицензионно), добавил в ядро возможность прямого использования из терминала. Собственно, вот они плюшки свежей версии 0.2 =)
Установка IDLE и wx: sudo zypper in --no-recommends python-wxWidgets-lang python-wxWidgets python-idle
Хозяйке на заметку: git show v0.1
позволяет просмотреть информацию о теге.
Что же можно почитать по теме?
- Fullcircle. HOW-TO: Программа на Python, Часть 5 — для ознакомления.
- Руководство по wxPython: первые шаги — уже интереснее и без навязывания ООП.
- WxPython in Action в переводе сообщества python.su — настольная книга =)
- The wxPython Linux Tutorial от сообщества wxpython.org — другая настольная книга на английском.
- wxWidgets 2.8.12 — официальная документация для C, к сожалению, документация по питонобиндингу уныла.
- Сайзеры в wxWidgets / wxPython — об упаковке элементов.
- Перевод главы 11: Буфер обмена — работа с буфером обмена
на кошкахснова на C.
Костыли, которые живы в памяти:
- Единственным кроссплатформенным вариантом иконки окна wx является (Что бы вы думали? Нет, не волшебный кролик.) ICO — родной формат винды хранения значков файлов.
- А Tk в принципе понимает только его и только под этой самой виндой.
- Не забываем, что в винде вывод кириллицы не работает корректно при использовании
raw_input()
. - У разных морд разные понятия об интеграции в систему.
- Например, Tk настолько хорошо прирастает к цветовой схеме и шрифтам, что даже запуск из текущей сессии от другого пользователя не помогает.
- А wx вообще не интересны системные шрифты, оно берёт их из не известных мне глубин gtk.
- У wx есть два класса для работы с буфером обмена:
TheClipboard
удалось пинками завести, а способ использованияClipboard
науке выяснить не удалось. - Этот самый буфер обмена используется точно так же как и в C:
.Open() .SetData() .Close()
Вот такие вот извращения встречаются и в модулях питона.
Заодно решил ещё повыбирать редактор себе, начну с того, что не понравилось:
- Medit не впечатлил совсем, в наличии только подсветка синтаксиса.
- Sublime Text оказался очень красивым редактором, но таким же малополезным.
- Bluefish обладает кое-каким автодополнением из документации.
- Komodo Edit показался очень неплохим вариантом, автодополнение порадовало.
И вот когда я уже бросил попытки собрать пакет с комодо и сделал десктоп-файл (ложить сюда: ~/.local/share/applications) для запуска из хомяка, в ленту совсем другой тематики прилетела радостная весть: питоноплагин Kdevelop уже готов к применению. Искомый пакет обнаружился только в репозитории нестабильных кедопакетов, поэтому был безжалостно форкнут и пересобран, для него понадобилось стянуть одну стабильную библиотеку (просто более новую, чем в релизе дистра) и нестабильный Kdevelop, который тоже был пересобран. Так что выйти должно было всё же получше, чем если брать из исходного репозитория. Установка: sudo zypper in kdevelop4-plugin-python
Kdevelop прекрасен: идеальная подсветка, автодополнение со справкой из документации, подсветка объектов класса, элементов, функций, переменных... Помимо прочего предложило интегрировать с гитом, сделало какой-то странный коммит, поэтому от этого я решил отказаться.