Я играл с GTK, TK, wxPython, Cocoa, curses и другими. Их довольно ужасно использовать ... GTK / TK / wx / curses, похоже, в основном являются прямыми портами соответствующих библиотек C, а Cocoa в основном требует использования как PyObjC, так и Interface Builder, которые мне не нравятся.
Библиотека графического интерфейса Shoes для Ruby великолепна ... Она очень разумно спроектирована и очень "рубиновая", и заимствует некоторые удобные в использовании вещи из веб-разработки (например, использование шестнадцатеричных кодов цветов или :color => rgb(128,0,0)).
Как сказано в названии: есть ли какие-нибудь приятные "Pythonic" графические инструменты?






Я использовал Поляна с некоторым успехом, хотя мне не удалось с головой окунуться в создание чего-то действительно сложного. Он имеет хороший конструктор графического интерфейса и хранит формы в виде файлов xml, которые загружаются динамически. Вроде как XAML afiak.
Вы смотрели Qt / PyQt? Хотя PyQt является является прямым портом из библиотеки C++, я считаю его более питоническим и приятным для программирования по сравнению с другими перечисленными вами. Также есть очень хорошая документация.
Дабо имеет красивую библиотеку пользовательского интерфейса, реализованную поверх wxPython. Это фреймворк, предназначенный в основном для приложений, ориентированных на базы данных, но библиотеку ui можно использовать отдельно.
Было / было несколько других попыток создать очень питонический графический интерфейс в качестве слоя поверх PyGtk или wxPython, таких как воск и PyGui, которые кажутся «застрявшими» на разной степени завершенности.
Кроме того, исчерпывающий список инструментов Python GUI можно найти здесь.
Второй PyQt. Вместе с книгой Быстрое программирование графического интерфейса с помощью Python и Qt это действительно легко выучить.
Я использую pyGtk. Я думаю, что wxPython хорош, но слишком ограничен, а PyQt - это, в общем, Qt. знак равно
Пожалуйста, ознакомьтесь с нашей платформой для настольных приложений Dabo. http://dabodev.com
Мы обернули набор инструментов wxPython для классов пользовательского интерфейса и заменили их уродливые функции в стиле C++ простыми свойствами. Вы упомянули о назначении цвета: в Dabo вы бы сделали это очень просто, используя на свой выбор:
obj.BackColor = "red"
obj.BackColor = (255, 0, 0)
obj.BackColor = "FF0000"
obj.BackColor = "#FF0000"
Dabo понимает все это и автоматически устраняет различия.
Я являюсь одним из авторов Dabo и буду рад ответить на любые другие вопросы, которые могут у вас возникнуть.
--- Эд Лиф
Т.к. это в основном прямой порт соответствующих библиотек Си? Очевидно, вы действительно не использовали Tk. Нет ничего более далекого от правды. Tk - это невероятная абстракция, которая находится настолько далеко от C API, насколько это возможно.