LINUX.ORG.RU

Tkd — кроссплатформенный GUI тулкит для D

 , , , tkd


0

5

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

Сегодня программист из комьюнити D Gary Willoughby анонсировал порт тулкита Tk на язык D. Порт носит название Tkd. Ключевой особенностью Tkd является полная совместимость с документаций от оригинального Tk.

>>> Подробности

★★

Проверено: mono ()
Последнее исправление: mono (всего исправлений: 2)
Ответ на: комментарий от MiniRoboDancer

Напиши сам (c) Люди проприетарщину реверс-инжинируют как орешки, а он боится потестить, что и когда функция возвращает...

Ответ из категории: «сами ебитесь».

Это же хорошо: не нужен какой-то компонент - не тащи.

Разницу между разнородностью и модульностью ты не видишь? Qt кстати можно собрать с минимальным количеством компонентов, ага.

Когда Qt начнут поддерживать KDEшники, его можно будет уверенно закопать сразу, ибо они сделают из него ещё более жирное прибитое к kdelibs говно.

Ага, учесть что они хотят видеть и Qt и kdelibs более раздробленным на модули, с минимальными взаимными зависимостями (собственно они это уже делают с Qt и KDF, что не скажешь о мёртвом тулките).
Вообще какбэ кути можно собрать с одним только QtNetwork, к примеру.

X10Dead ★★★★★
()
Ответ на: комментарий от yoghurt

Круто!

Да. Только сопровождать некому. Сейчас выяснил, что gtk-cffi-ext:with-progress-bar не работает, так как cl-cairo2 изменилось. В консоли куча сообщений deprecated от cffi, так как он тоже успел обновиться. А переделывать всё времени нет.

monk ★★★★★
()
Ответ на: комментарий от monk

У меня лежит :(. Может комп недостаточно мощный. Питон, 40к просто забить по порядку - уже проблемы, 400к - даже не дождался когда завершится.

RPG
()
Ответ на: комментарий от RPG

40к просто забить по порядку - уже проблемы, 400к - даже не дождался когда завершится.

Ты может просто не дождался пока ListStore заполнится? Там да, не самый быстрый интерфейс. Я просто свою модель на массиве сделал и переопределил GtkTreeModel::GetValue

А когда модель заполнена, то работает довольно шустро.

monk ★★★★★
()
Ответ на: комментарий от monk

К слову, GtkListStore не быстрый — для биндингов. Там куча промежуточной фигни создаётся (GValue, GtkIter) на каждый вызов. Получается около 1000-5000 строк в секунду можно добавлять.

Если использовать C или php, то в 10-100 раз быстрее.

monk ★★★★★
()
Ответ на: комментарий от monk

Я пробовал ещё Vala - компилится в нативный Си (правда он может тоже тупить и GtkIter создавать через malloc), но тем не менее, промежуточный код не является ботлнеком. Профилировщик показывает ступор где-то на gtk_tree_store_set и gtk_tree_store_insert_before.

Хотя меня не удивляет: https://git.gnome.org/browse/gtk /tree/gtk/gtktreeview.c Copyright (C) 2000 Red Hat, Inc., 16 тыщ строк кода:) Кто его когда вообще рефакторил с 2000-го?

RPG
()
Последнее исправление: RPG (всего исправлений: 1)
Ответ на: комментарий от RPG

Профилировщик показывает ступор где-то на gtk_tree_store_set и gtk_tree_store_insert_before

Во-первых, зачем tree_store для списка. Используй list_store.

Во-вторых, на _set может тупить, если вдруг у модели включена сортировка. Тогда получишь пересортировку после каждого сета (при изменении значения в сортированной колонке).

gtk_tree_store_insert_before — лучше gtk_tree_store_insert(store, iter, NULL, 0) — тогда не будет поиска узла в дереве.

monk ★★★★★
()
Ответ на: комментарий от monk

list_store значительно быстрее:) Около трёх секунд ушло на создание. Да, это что-то я напутал с деревьями.

RPG
()
Ответ на: комментарий от keyran

kdelibs 5 отличается от четвертых тем, что разбито на множество модулей

На зависимости это слабо влияет. Профит пока только для гентушников.

И уж в руках KDE ему будет явно лучше, чем в руках Дигии, которой сообщество, в целом, параллельно. У них бизнес.

Дигия продаёт тулкит множеству компаний, занимающихся в том числе эмбеддедом. Разжирять тулкит (и вместе с тем адаптировать его под неынтырпрайзные языки) им недосуг, в отличие от KDEшников.

MiniRoboDancer ★☆
()
Ответ на: комментарий от monk

Не так сильно и вырос

24% - не сильно?

Так что расти ещё есть куда.

Оперативно вырастет, не беспокойся.

MiniRoboDancer ★☆
()
Ответ на: комментарий от X10Dead

Разницу между разнородностью и модульностью ты не видишь?

А какую роль играет однородность/неоднородность, если у этих компонентов разные задачи? Ты хочешь, чтоб у всех библиотек были похожие API?

Qt кстати можно собрать с минимальным количеством компонентов, ага.

Только на системах, где его надо тянуть с приложением. И то, этим мало кто заморачивается.

Ага, учесть что они хотят видеть и Qt и kdelibs более раздробленным на модули

«Хотят», потому что сообщество надавило.

MiniRoboDancer ★☆
()
Ответ на: комментарий от MiniRoboDancer

На зависимости это слабо влияет. Профит пока только для гентушников.

Дистрибопроблемы, надо будет пинать мантейнеров.

Дигия продаёт тулкит множеству компаний, занимающихся в том числе эмбеддедом. Разжирять тулкит (и вместе с тем адаптировать его под неынтырпрайзные языки) им недосуг, в отличие от KDEшников.

Дигия, окромя прочего, сейчас пишет коммерческие модули для Qt. KDE собираются разбить на модули kdelibs, и нет никаких оснований полагать, что при этом они объединили бы модули Qt. Скорее, добавили бы отдельные модули, которые себе тащить никто и сейчас не заставляет.

keyran ★★
()
Ответ на: комментарий от keyran

Дистрибопроблемы, надо будет пинать мантейнеров.

Ну да, разобьют на кучу пакетов - и зависимости превратятся в жирную нестабильную кашу. Лучше уж жирные пакеты.

MiniRoboDancer ★☆
()
Ответ на: комментарий от MiniRoboDancer
$ dpkg -l *libqt5*
ii  libqt5clucene5 5.2.1-8      i386         Qt 5 CLucene module
un  libqt5core5    <нет>        <нет>        (описание недоступно)
ii  libqt5core5a:i 5.2.1+dfsg-3 i386         Qt 5 core module
ii  libqt5dbus5:i3 5.2.1+dfsg-3 i386         Qt 5 D-Bus module
ii  libqt5designer 5.2.1-8      i386         Qt 5 designer module
ii  libqt5gui5:i38 5.2.1+dfsg-3 i386         Qt 5 GUI module
ii  libqt5help5:i3 5.2.1-8      i386         Qt 5 help module
ii  libqt5network5 5.2.1+dfsg-3 i386         Qt 5 network module
ii  libqt5printsup 5.2.1+dfsg-3 i386         Qt 5 print support module
ii  libqt5sql5:i38 5.2.1+dfsg-3 i386         Qt 5 SQL module
un  libqt5sql5-iba <нет>        <нет>        (описание недоступно)
un  libqt5sql5-mys <нет>        <нет>        (описание недоступно)
un  libqt5sql5-odb <нет>        <нет>        (описание недоступно)
un  libqt5sql5-psq <нет>        <нет>        (описание недоступно)
ii  libqt5sql5-sql 5.2.1+dfsg-3 i386         Qt 5 SQLite 3 database driver
ii  libqt5test5:i3 5.2.1+dfsg-3 i386         Qt 5 test module
ii  libqt5widgets5 5.2.1+dfsg-3 i386         Qt 5 widgets module
ii  libqt5xml5:i38 5.2.1+dfsg-3 i386         Qt 5 XML module

С зависимостями всё в порядке.

monk ★★★★★
()
Ответ на: комментарий от matumba

потому что с первых же секунд тырфейс отдаёт «юниксвеем».

Побольше бы такого, а то тошно уже. Компьютер - не для кур! Юниксвей - в президенты! :)

pihter ★★★★★
()
Ответ на: комментарий от keyran

которой сообщество, в целом, параллельно. У них бизнес.

Вот в том-то и беда, того-то и бояться... бизнес у них

pihter ★★★★★
()
Ответ на: комментарий от keyran

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

pihter ★★★★★
()
Ответ на: комментарий от pihter

Оно ж под LGPL. Форкни, и форк будет принадлежать тебе.

keyran ★★
()

Если кому интересно, я скачал сорсы, скомпилял, запустил пример (винда-7) - получилось очень даже нативненько! С таким внешним видом с удовольствием буду этим пользоваться.

пример

matumba ★★★★★
()
Ответ на: комментарий от matumba

В Линуксе, к сожалению, выглядеть будет страшненько. Если бы там была поддержка чартов для рисования графиков, цены бы этому поделию не было. Пока использую gnuplot, поскольку с plot2kill программы периодически не собираются.

Vudod ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.