The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск Cambalache 0.10, инструмента для разработки GTK-интерфейсов

16.06.2022 17:22

Опубликован релиз проекта Cambalache 0.10.0, развивающего инструмент быстрой разработки интерфейсов для GTK 3 и GTK 4, использующий парадигму MVC и философию первостепенного значения модели данных. В отличие от Glade в Cambalache предоставляется поддержка ведения нескольких интерфейсов пользователя в одном проекте. Код написан на Python и поставляется под лицензией LGPLv2.1. Для установки доступен пакет в формате flatpak.

Cambalache не зависит от GtkBuilder и GObject, но предоставляет модель данных, соответствующую системе типов GObject. Модель данных может импортировать и экспортировать разом несколько интерфейсов, поддерживает объекты, свойства и сигналы GtkBuilder, предоставляет стек отката операций (Undo / Redo) и возможность сжатия истории команд. Для генерации модели данных из gir-файлов предоставляется утилита cambalache-db, а для генерации классов GObject из таблиц модели данных - утилита db-codegen.

Интерфейс может генерироваться на базе GTK 3 и GTK 4, в зависимости от определённой в проекте версии. Для обеспечения поддержки разных веток GTK формирование рабочей области осуществляется с привлечением бэкенда Broadway, позволяющего отрисовывать вывод библиотеки GTK в окне web-браузера. Основной процесс Cambalache предоставляет обвязку на базе WebKit WebView, в которой при помощи Broadway транслируется вывод из процесса Merengue, который непосредственно занимается отрисовкой интерфейса, создаваемого пользователем.

В новом выпуске:

  • Добавлена поддержка библиотек libAdwaita и libHandy, предлагающих набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG.
  • Добавлена поддержка определения новых объектов напрямую (Inline) в блоке со свойствами другого объекта, без использования ссылок.
    
     <object class="GtkWindow">
       <property name="child">
         <object class="GtkLabel">
           <property name="label">Hola Mundo</property>
         </object>
       </property>
     </object>
    
  • Добавлена поддержка определения специального дочернего типа, применяемого, например, в виджете заголовка окна.
    
     <object class="GtkWindow">
       <child type="titlebar">
         <object class="GtkHeaderBar"/>
       </child>
     </object>
    
  • Добавлена поддержка перегруппировки позиций дочерних элементов.
  • Добавлена поддержка перечисляемых и флаговых типов для GdkPixbuf, Pango, Gio, Gdk и Gsk.
  • Добавлен перевод интерфейса на украинский язык.
  • Предложены новые редакторы свойств.


  1. Главная ссылка к новости (https://blogs.gnome.org/xjuan/...)
  2. OpenNews: Представлен Cambalache, новый инструмент разработки GTK-интерфейсов
  3. OpenNews: Релиз Cambalache 0.8.0, инструмента для разработки GTK-интерфейсов
  4. OpenNews: Выпуск библиотеки Libadwaita 1.0 для создания интерфейсов в стиле GNOME
  5. OpenNews: Представлен Blueprint - новый язык построения пользовательских интерфейсов для GTK
  6. OpenNews: Доступен графический тулкит GTK 4.6
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57365-cambalache
Ключевые слова: cambalache, gtk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 17:33, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Пора его портировать на Qt.
     
     
  • 2.2, Аноним (2), 17:40, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    приступай
     
  • 2.3, Аноним (3), 17:47, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Пора его портировать на Qt.

    там есть биндинги для раста? шоб сразу двух зайцев!

     
     
  • 3.5, НяшМяш (ok), 18:02, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    К расту только биндинги на GTK есть.
     
     
  • 4.6, Аноним (1), 18:07, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ага, обычно (всегда) биндинги бывают для языка к тулкиту. А для Раста наоборот.
     
  • 2.7, SodaF (?), 18:16, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Боже упаси.
     
     
  • 3.12, Аноним (12), 20:32, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вам напомнить из-за чего был написан GNOME?
     
     
  • 4.17, user90 (?), 21:14, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Наркоман)
     

  • 1.4, Аноним из консоли (?), 17:49, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем это лучше/хуже Glade, кроме поддержки GTK4?
     
     
  • 2.14, Андрей (??), 21:02, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Основной процесс Cambalache предоставляет обвязку на базе WebKit WebView

    Тяжеловато будет. Но хорошо, что хоть так есть движение.

     
  • 2.26, Аноним (26), 06:51, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. поддержка актуальной версии уже недостаточное условие? Glade какбэ мертв.
     

  • 1.9, Аристарх (??), 19:32, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я вот сколько пишу "морды для баз", но никак не вникну в эту белиберду:

    "Модель данных может импортировать и экспортировать разом несколько интерфейсов"

    Модель данных - это некий класс для DTO, правильно? По модели можно сгенеировать(экспортировать?) некий GUI для её редактирования. Таких гуёв можно сделать несколько, не вопрос. Но как можно... ИМПОРТИРОВАТЬ гуйню???? Чота я в шоке. Или "интерфейсы" здесь в каком-то другом смысле?

     
     
  • 2.11, Аноним (11), 19:39, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Программа может сама в себя импортировать кем-то другим сделанную гуйню. И продолжить её редактировать. А потом экспортировать чтобы применить в приложении.  
     
     
  • 3.15, Аноним (15), 21:11, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    такое дурацкое разделение понятий "открыть" и "импортировать" есть, по-моему, только в blender и meshlab
     
     
  • 4.24, lockywolf (ok), 04:59, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обычно "импортировать" и "открыть" отличаются тем, что "открыть" работает в две стороны, а "импортировать" в одну.
     
  • 4.28, Аноним (28), 09:01, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Открыть это значит открыть только один проект и работать только в нём. А импортировать это значит взять некий готовый элемент или проект и вставить в тот проект над которым сейчас работаешь.  Да даже в фотошопе так и это правильно.  Можно было бы назвать частичное открытие, но импорт само правильное.  
     
  • 4.33, Аноним (33), 09:29, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Далеко не так Под импортировать во многих САПРах и не только подразумеваетс... большой текст свёрнут, показать
     
  • 4.36, Аноним (36), 10:27, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В тридэ редакторах импортирование обычно происходит в какой-нибудь не нативный формат.
     

  • 1.13, Аноним (13), 21:01, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Посмотреть бы где-нибудь пример, как это скомпилировать.
     
  • 1.18, Аноним (15), 21:15, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    мда, этот суперсофт есть только в AUR, и то - с поломанным PKGBUILD
     
     
  • 2.25, Аноним (25), 06:32, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В репозиториях Fedora находится 0.10.1. С Fedora всё в порядке.

    Присоединяюсь к вопросу: как скомпилировать/использовать этот xml? Где глянуть примеры?

     

  • 1.19, Аноним (15), 21:24, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    какой-то xml экспортируется. чё с ним делать, как программу создать?
     
     
  • 2.21, Аноним (21), 23:02, 16/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в glade было всё просто:

    glade_xml_new
    glade_xml_get_widget
    glade_xml_signal_autoconnect...

     
  • 2.39, Аноним (39), 13:02, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В коде через GtkBuilder подключается. Так XML намного удобнее бойлерплейта на C.
     

  • 1.20, Аноним (20), 21:25, 16/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Классная новая фамилия для Бенедикта Камбербатча
     
  • 1.27, Аноним (13), 07:17, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Первый скриншот снова сделан как будто из виртуалки или пережат из jpg в jpg — мутное и нечёткое.

    Вот как это выглядит
    https://ibb.co/YfsD48L
    https://ibb.co/tPqB562

     
     
  • 2.29, Аноним (28), 09:02, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Трафик не резиновый.
     
     
  • 3.31, Аноним (36), 09:14, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У меня дома, на работе, на телефоне резиновый.
     

  • 1.30, Аноним (36), 09:06, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На сабже можно написать клон GNOME 1? https://en.wikipedia.org/wiki/GNOME#/media/File:GNOME_1.0_(1999,_03)_with_GNOM
     
  • 1.32, Аноним (36), 09:15, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я правильно понимаю что сабж что-то вроде Борланд Дельфи? Я могу на сабже сделать свой клон фотошопа и 3д макса?
     
     
  • 2.34, Аноним (34), 10:00, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет. С помощью этого инструмента создаётся толлько гуй. Только морда без кода.

    Borland Delphi - это комбайн. Пиши код, делай гуй и т.п. В лине его нишу занимает Lazarius.

     
     
  • 3.35, Аноним (36), 10:22, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >В отличие от MSE — фокус на преобразование проектов Delphi. Библиотека визуальных компонентов — близкая к VCL Lazarus Component Library (LCL), практически полностью поддерживает виджеты Win32, GTK1, GTK2, Carbon[en], Qt, fpGUI, Cocoa, частично — виджеты WinCE[2].

    Так вот же она IDE для кроссплатформенного софта. Зачем ещё что-то нужно.

     
     
  • 4.38, Аноним (38), 12:52, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Паскаль оставляют людей инвалидами на всю жизнь, после него только бейсик.
     
  • 3.37, Аноним (36), 10:33, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я серьезнго, зачем люди учат какие-то другие языки программирования, фреймворки, если есть этот чудесный Lazarus на котором можно писать кроссплатформенный софт.
     
     
  • 4.40, n00by (ok), 13:34, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что в России некогда написали слишком много кода на Дельфи. Код иногда был не очень красивый, но вполне решал насущные задачи. Белому господину не понравилось такая самостоятельность, он объяснил экспертам, что := несёт нехороший смысл и внедрил C#.
     
     
  • 5.44, Аноним (34), 14:50, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Pascal конечно не идеал, но C# на его фоне та ещë какашечка.
     
  • 5.48, torvn77 (ok), 15:06, 20/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты Майкрософт пнул?
     
     
  • 6.49, n00by (ok), 10:40, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Микрософт здесь не пнёт лишь ленивый. Я бы на их месте точно так же внедрял свою "Java" на фоне анекдотов, где русские программисты предлагают всё переписать. А после внедрения вбросил бы мантру про NIH синдром. ;)
     
  • 4.46, Алексей (??), 09:22, 19/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И компилировать только для той ОСи, из которой запущена IDE, иначе ставь 250 виртуалок.
     
     
  • 5.50, Аноним (21), 22:51, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Открой настройки - Target OS
     
  • 2.42, Аноним (21), 13:58, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Я могу на сабже сделать свой клон фотошопа и 3д макса?

    Ты - нет, навыков не хватит.

     
     
  • 3.43, Аноним (36), 14:41, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А я буду стараться.
     
     
  • 4.51, Аноним (21), 22:52, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Растаманы в Мозиле тоже старались, в итоге уронили всё, и она их выгнала.
     

  • 1.41, borschevik (ok), 13:45, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что скажут уважаемые аналитики? Годно или негодно? Мне не нравится, что оно на петоне, а не на перле.
     
     
  • 2.45, Аноним (34), 14:52, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Мертворождённый проект и дело не в питоне.
     

  • 1.47, Алексей (??), 09:23, 19/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это не СДЛ, поэтому проект умрет.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру