Декларативный ГТК - PullRequest
       21

Декларативный ГТК

6 голосов
/ 19 декабря 2011

TL; DR: есть ли библиотека для декларативного создания пользовательского интерфейса с использованием GTK?Предпочтительно с поддержкой Python.


Я - разработчик Python / Django, большая часть моего опыта работы с пользовательскими интерфейсами происходит из Интернета, где декларативные, слабо связанные конструкции пользовательского интерфейса являются стандартными.Недавно мне пришлось создать приложение с графическим интерфейсом на Java / Swing для школьного проекта, и в итоге я использовал SwiXML для создания декларативных макетов Swing для проекта.

Я спросил себя, есть лианалогичные возможности использовать для Python.Я не очень люблю Java, поэтому я не начну разрабатывать приложения Swing.Когда я искал Python GUI Toolkits, я пришел к выводу, что тремя основными игроками в этой области являются GTK, QT и Wx.

Из этих трех я предпочел бы GTK, но я не мог найти какой-либо способ создатьдекларативный интерфейс с GTK.Исходя из своего опыта работы с HTML и SwiXML, я считаю создание пользовательского интерфейса на основе кода огромным беспорядком и предпочел бы не делать это таким образом.Декларативный пользовательский интерфейс намного гибче и слабее связан.

Существует ли библиотека для создания декларативного пользовательского интерфейса с использованием GTK?Желательно с поддержкой Python.

Если такого нет (что, я полагаю, я ничего не мог найти), я мог бы в конечном итоге начать работать с QT, даже если я нене нравится внешний вид по умолчанию в Linux.(Но, может быть, это тоже настраивается, так, чтобы это выглядело как GTK.)

Ответы [ 2 ]

12 голосов
/ 19 декабря 2011

Я думаю, что вы ищете gtk.Builder. По сути, объекты gtk.Builder могут использоваться для загрузки файла .ui, который содержит данные xml, описывающие виджеты для пользовательского интерфейса и обратные вызовы для событий, которые должны быть представлены кодом. Файл .ui можно создать с помощью glade , поэтому вам даже не нужно писать xml самостоятельно.

1 голос
/ 06 октября 2017

Посмотрите на enaml . Хотя нет GTK инструментария, это единственная действительно декларативная среда для Python, о которой я знаю.

...