Есть ли какие-нибудь "удобные для программирования" наборы инструментов с графическим интерфейсом для Python?

Я играл с GTK, TK, wxPython, Cocoa, curses и другими. Их довольно ужасно использовать ... GTK / TK / wx / curses, похоже, в основном являются прямыми портами соответствующих библиотек C, а Cocoa в основном требует использования как PyObjC, так и Interface Builder, которые мне не нравятся.

Библиотека графического интерфейса Shoes для Ruby великолепна ... Она очень разумно спроектирована и очень "рубиновая", и заимствует некоторые удобные в использовании вещи из веб-разработки (например, использование шестнадцатеричных кодов цветов или :color => rgb(128,0,0)).

Как сказано в названии: есть ли какие-нибудь приятные "Pythonic" графические инструменты?

Т.к. это в основном прямой порт соответствующих библиотек Си? Очевидно, вы действительно не использовали Tk. Нет ничего более далекого от правды. Tk - это невероятная абстракция, которая находится настолько далеко от C API, насколько это возможно.

Bryan Oakley 20.09.2008 05:46
scriptedforms.com.au is a neat package that lets you quickly create Python GUIs with Markdown
SimonBiggs 01.03.2018 11:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
19
2
10 757
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я использовал Поляна с некоторым успехом, хотя мне не удалось с головой окунуться в создание чего-то действительно сложного. Он имеет хороший конструктор графического интерфейса и хранит формы в виде файлов 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 и буду рад ответить на любые другие вопросы, которые могут у вас возникнуть.

--- Эд Лиф

Другие вопросы по теме