Есть ли библиотека Python, которая позволяет создавать пользовательские интерфейсы без написания большого количества кода? - PullRequest
7 голосов
/ 23 марта 2009

Я пишу редакторы в Python уже несколько лет, и я сыт по горло микроуправлением каждой деталью интерфейса окна или диалога каждый раз.

Существует ли технология, которая позволяет мне, скажем, определять отношения между интерфейсом, разработанным GTK + Glade, и таблицами и записями базы данных SQLite для выполнения всей работы среднего уровня? Это должно избавить меня от ручного написания обработчиков событий, входных оценщиков и просмотра обновлений.

Рассматриваемые технологии являются лишь примерами, но я хочу придерживаться Python, насколько это возможно.

Ответы [ 8 ]

5 голосов
/ 23 марта 2009

Помимо уже упомянутых я могу добавить:

Я никогда не использовал ни одну из них, поэтому у меня нет рекомендаций, но, для чего это стоит, я использовал по крайней мере 2 сложные программы, созданные непосредственно на pygtk, которые работали как в Windows, так и в Linux.

Я думаю, что Kiwi - единственный из них с поддержкой bb для поддержки db (через интерфейс с SQLAlchemy, SQLObject или Storm), но я был бы удивлен, если бы вы не могли использовать один из этих ORM внутри любой другой инфраструктуры .

4 голосов
/ 23 марта 2009

Dabo построен поверх wxPython, так что вы можете не предпочесть его, но он разработан, чтобы упростить привязку GUI к базе данных, поэтому я рекомендую вам проверить его, если еще не В частности, у него есть хорошие возможности для привязки виджетов к данным и обработки множества распространенных случаев разработки графического интерфейса.

4 голосов
/ 23 марта 2009

PyQt и его модели могут автоматизировать некоторые из этих задач для вас (до некоторой степени вне курса, например, заполнение виджетов данными из базы данных и обработка большей части поведения виджетов, буферизация и т.д.).

Если вам нужен более объектно-ориентированный подход к обработке SQL, вы можете обратиться к ORM-ориентированному решению (например, SQLAlchemy).

1 голос
/ 28 марта 2009

На wxPython есть хорошая книга «wxPython in Action», чего нельзя сказать о некоторых других решениях. Не стучите по остальным. В прошлом я успешно работал с wxPython, и он поставляется с большим набором демонстрационных приложений с исходным кодом, которые вы можете свободно позаимствовать.

Лучший дизайнер пользовательского интерфейса, который я нашел для приложений wxPython, является коммерческим, Anthemion DialogBlocks. Это один из программистов wxPython и стоит денег. Другие решения для дизайна пользовательского интерфейса включают wxGlade (я нашел его полезным, но не функциональным) и Boa Constructor (не использовал его). В Wing IDE также может быть один. Я думаю, что редактор Python от Stani включает wxGlade. Есть много других проектов, которые на самом деле не работают или довольно старые.

Что касается автоматизации SQL, как говорит другой отвечающий, я бы посмотрел на алхимию SQL, но кривая обучения для небольшого приложения может быть слишком большой, и вам будет лучше просто перейти к odbc. Наилучший odbc api - тот, который использует Django, pyodbc.

Прошло много времени с тех пор, как я разработал эти инструменты, поэтому для каждого может быть что-то более новое, но в то время они были определенно лучшими в своем роде, на мой взгляд.

1 голос
/ 24 марта 2009

Черты могут быть хорошим вариантом для вас. http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html

Как просто сопоставить пользовательский интерфейс с объектом, он не выглядит слишком сложным, чтобы включить SQLAlchemy для сохранения.

1 голос
/ 23 марта 2009

wxGlade может помочь, хотя я сам этим не пользовался, поэтому не говорю по опыту.

Boa Constructor , очевидно, имеет встроенный графический интерфейс wxPython, и есть также PythonCard , хотя разработка этих двух проектов, похоже, застопорилась.

0 голосов
/ 19 апреля 2009

Хорошо, это нестандартное решение, но напишите себе генератор кода. Я делал это несколько раз, используя Мако . Таким образом, в моем случае я автоматически проверяю таблицу, какие столбцы она содержит, и набирает и генерирует классы из этого. Это больше предварительная работа, но она делает именно то, что вы хотите, и ее можно использовать в последующих проектах.

0 голосов
/ 24 марта 2009

У меня был большой успех с wxPython, но это было несколько лет назад, и, возможно, появятся лучшие новые решения ...

...