LINUX.ORG.RU

На чём формошлёпить?

 


1

2

Привет. Хочется какой-то легковесную либу умеющее wayland, на которой сделаю окошко с небольшим колчеством гуйни (2-3 списка), окошко даст область под отрисовку через cairo. Поиски пока как-то буксуют. Хотел заюзать GTK, потом наткнулся на Анонс Gtk 4.0 и новый план выпуска и нумерации будущих версий тулкита, ну его, там какие-то упоротые неадекваты. QT - тоже монстр, да ещё со своим препроцессором (а их сайт? всё цветасто-гуястое, начинает тошнить от такого, аскетизм явно не их конёк). FLTK подходит идеально, но вот wayland не умеет, fox toolkit - аналогично.

Пока думаю взять fltk, но этот xwayland костыль …

★★

С wxwidgets вообще какая-то ерунда:

pavlick /tmp/t $ pacman -Ss wxwidgets
extra/wxgtk2 3.0.5.1-1 [установлен]
    GTK+2 implementation of wxWidgets API for GUI
extra/wxgtk3 3.0.5.1-1
    GTK+3 implementation of wxWidgets API for GUI

Зачем gtk решил его за_implementation_ить? Как его теперь поставить, наверное будут конфликты.

pavlick ★★
() автор топика

(2-3 списка), окошко даст область под отрисовку через cairo. Поиски пока как-то буксуют. Хотел заюзать GTK, потом наткнулся на…

Проблему на ровном месте создал. Делай на gtk3. Если захочешь на следующую версию перейти, то гуй из 3-х виджетов портируется за 5 минут.

anonymous
()

Так если wayland - выбор то не большой: Qt, Gtk+, Clutter, SDL, EFL. На счет moc - а тебе не все равно, ну выполняет он лишний проход по исходникам. В Gtk+ ui(glade, который xml) разбирается на лету, Qt - разбирает его препроцессором. В Gtk+ надо получать указатель по id на нужный объект ui, а в Qt - это сделал за тебя moc.

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

Wxwidget не является самостоятельным, он обёртка над другими библиотеками отрисовки интерфейса

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

GTK

Да в общем-то он вроде ничего, ну вот цели у команды разработчиков какие-то «странные». Что за планы по отламыванию обратной совместимости? И какой наркоман придумал делать api/abi несовместимость на следующей минорной версии? Чтобы получить конфликт либ, т.к. особо «прогрессивные» заюзали для поделок x.2, а другой x.4. Ну нафиг, лучше буду fltk’шным луддитом.

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

У него в этом плане меньше самостоятельности.

grem ★★★★★
()

Спс за ответы. В общем с выбором на wayland туго. Возьму fltk, там запланирован вяленый, когда-нибудь прикрутят, наверное. https://www.fltk.org/str.php?L3371

pavlick ★★
() автор топика

QT - тоже монстр, да ещё со своим препроцессором

Какой ужас, ты как блондинка «этот тулкит какой-то прааативный, да еще пресроцессор, фу». Дай четкие критерии неприменимости тулкита, ведь в википедии и без того есть полный список всех их

FLTK не умеет Wayland - этот тулкит плохой получается, а Qt5 умеет, но он «монстр»

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Тулкитофобы, сэр.

Пресловутую «монструозность» Qt так никто и не померил, причём надо чётко понимать, что если сравнивать GTK — GTK надо сравнивать не со всей Qt, а с QtGui+QtWidgets.

Ну и не совсем понятно, на чём сравнивать, т.к. сравнивать надо программы с одной стороны реально применимые, с другой — тождественные по сложности. Понятно, что если программа только выводит в окно «Hello world», то можно просто взять тот же нуклеар, и он всех порвёт. :)

hobbit ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Вот ты когда гвоздь забиваешь, берёшь молоток или кувалду? Ну давай вместе сравним:

# pacman -Si fltk
Размер загрузки      : 1615,97 KiB

# pacman -Si qt5-base
Размер загрузки      : 12,75 MiB

И это лишь один qt5-base, там чёрт ногу сломит пытаясь разобраться какие ещё модули доставить. Наверное, там много всего очень шибко нужного продвинутым ребятам, но не мне, мне надо «2-3 списка + место под cairo». Отсюда QT, с моей точки зрения, - избыточен, монстр. А зависимость от их препроцессора - вот мне оно зачем? Я в состоянии самостоятельно передать callback стандартными яызковыми средставми, никакой нужности в нем не вижу.

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

pacman -Si fltk Размер загрузки: 1615,97 KiB

Это тоже слишком много для БК-0010. Что включает в себя это qt5-base, всё ли будет задействовано? Ты же не написал в своей теме что тебе нужно 2-3 списка и область рисования, но даже для такой программы, которая судя по всему разовая, какой вообще смысл место экономить?

А кто сказал что оперативной памяти fltk задействует в 8 раз оперативной меньше?

Дело твое конечно, но некоторые не стесняются брать гипер-монстров типа Java или Mono для маленьких программ в три кнопки, если это лишь небольшой вспомогательный инструмент по рабочей необходимости

Если ты делаешь «крутой у мамки мессенджер» на миллионы пользователей, тогда бы я еще понял желание подобрать максимально лаконичное решение. Если пользователей не более 10 морд - подумай, нужен ли тебе гемор с маленькими тулкитами

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от hobbit

Пресловутую «монструозность» Qt так никто и не померил

Достаточно собрать приложение и посмотреть сколько оно будет занимать под той же виндой. И сравнить с wxWidgets.

stasolog
()
Ответ на: комментарий от I-Love-Microsoft

А кто сказал что оперативной памяти fltk задействует в 8 раз оперативной меньше?

Это разве не очевидно лол?

stasolog
()

Не понимаю претензий к Qt по объему в 12мб, когда у тебя время сборки проекта будет по минуте-другой, и вот это есть засада, а не место на диске.

2-3 списка и каиро

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

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Блин, ну мы же в unix, как же - делать что-то одно, но хорошо? QT умеет слишком много для GUI Toolkit. Прикольно, что qt5 умеет websockets, но если мне будет надо, поставлю какаю-нибудь libwebsockets.

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

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

)) Не могу, это для еретиков. Я определился уже, всех поблагодарил, ещё раз спасибо.

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

Qt умеет много потому что это кроссплатформенный фреймворк и там все навелосипежено чтобы один и тот же код собирался и под винду тоже.

Если это не нужно, и приложение не имеет развесистого GUI, то Qt, имхо, тоже не нужен.

А по сабжу могу предложить nuklear.

https://github.com/vurtun/nuklear

curufinwe ★★★★★
()
Последнее исправление: curufinwe (всего исправлений: 1)

Хотел заюзать GTK, потом наткнулся на Анонс Gtk 4.0 и новый план выпуска и нумерации будущих версий тулкита, ну его, там какие-то упоротые неадекваты.

«Gtk 4.0 is not Gtk 4»

Please note that this blog post is very old, and not an accurate reflection of the current state of versioning in GTK.

Новости уже 4 года, если следовать ее логике, то у нас уже должен быть GTK 5, вот только GTK 4 еще так и не выпустили. Ломание API/ABI, насколько я могу судить по разработке GTK, будет происходить в девелоперских версиях (те, которые сейчас 3.99) до окончания стабилизации GTK 4.

Ну и как следует из жизненной практики, стабильность релизного API/ABI у GTK+3 была намного выше, чем у того же Qt, см. статистику:

Вряд ли что-то изменится с появлением GTK 4, учитывая что на GTK завязаны такие неповоротливые игроки, как RedHat, IBM, SUSE и пр. GTK никогда не отличался скоростью разработки и внедрением новых фич. Так что глупо оценивать ситуацию исходя из какого-то блогопоста в личном бложике какого-то разработчика GTK (GTK ли?) который спустя 4 года уже расходится с существующей реальностью.

По сабжу. Если у тебя простенькое приложение из небольшого количества графических контролов, я бы взял GTK+. Просто потому что он всегда есть из коробки в любых дистрах, тогда как Qt иногда нужно доустанавливать из репозиториев. Ставку на GTK сделали CentOS/RHEL/Fedora, Ubuntu, Debian и SUSE, а это значит, что у тебя приложение будет выглядеть нативненько везде. Но если у тебя сложное графическое приложение по типу: http://esxi.z-lab.me:666/~exl_lab/screens/idalarge.gif, то тогда твой выбор только Qt.

На FLTK даже и не смотри. Во-первых он везде будет выглядеть как инородное говно и приложением на FLTK будет неприятно пользоваться, во-вторых поддержку Wayland туда завезут очень-очень не скоро. Тогда как у GTK поддержка Wayland из коробки и у Qt дела с этим обстоят неплохо.

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

QT умеет слишком много для GUI Toolkit

Квиктайм? А если ты про Qt, то прикинь, но это НЕ GUI Toolkit. Точнее, не только GUI Toolkit.

мы же в unix, как же - делать что-то одно, но хорошо?

Не надо из концепции построения программного обеспечения делать религиозный культ. Да, юникс-вей это хорошая инженерная концепция, если её понимать и применять по назначению. Как только её начинают обожествлять и пропихивать во все дырки — всё, туши свет.

Не могу, это для еретиков.

А, ну тоды всё. На 148 статью нарываться не буду.

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

Квиктайм? А если ты про Qt, то прикинь, но это НЕ GUI Toolkit. Точнее, не только GUI Toolkit.

А, ну если не GUI Toolkit )). А что это меняет? Он от этого перестал быть комбайном? Всегда можно начать некоторый ОТДЕЛЬНЫЙ кроссплатформенный проект-либу, не втягивая её под «бренд» Qt. Типичная болезнь проприетарщины, которая не может остановиться и растёт как раковая опухоль.

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

Типичная болезнь проприетарщины, которая не может остановиться и растёт как раковая опухоль.

Я вас умоляю, свободный софт с неумолимым ростом тоже существует.

gedisdone ★★★
()

Давеча искал универсальные GUI

Нашел
https://github.com/andlabs/libui

https://github.com/vurtun/nuklear

Замороченные, но если нужна супер универсальность вариант

Lazarus умеет Qt, лучше него средств формошлепства не видел

Многое зависит от языка, на котором писать

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

Так уродов становится больше и больше, скоро это новой красотой станет.

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

Я знаком с Nuklear, но даже для очень маленькой программы на 5 морд пользователей, все равно бы взял Qt5

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

Осталось 7 задач решить для выпуска gtk 4:

https://gitlab.gnome.org/GNOME/gtk/-/milestones/1

Текущая версия по оценкам авторов: 3.98.2

Недолго осталось :)

Вот как выглядит: https://blog.gtk.org/files/2020/05/video.webm?_=1

https://blog.gtk.org/files/2020/04/Screenshot-from-2020-04-01-15-10-40.png

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

А кто сказал что оперативной памяти fltk задействует в 8 раз оперативной меньше?

Я тут сделал тестовое окошко с метко «Hello world» на GTK и fltk, вот что pmap говорит:

$ pmap {FLTK}
итого 18072K

$ pmap {GTK}
итого 334412K

Понятно, что там ленивое выделение памяти, но всё же, загружать в 18 раз больше всякого библиотечного кода …

Но, к сожалению, fltk в моём случаи работает с ощутимыми косяками, работа чере xwayland костыль даёт о себе знать.

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

Вопрос не про номер текущей версии. А про то, как будет осуществляться версионирование. Т.е. эта информация устарела: Анонс Gtk 4.0 и новый план выпуска и нумерации будущих версий тулкита

А какая актуальная?

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

Правильно ли я понимаю, что версионирование Gtk будет

3.9x, 4.9x, 5,9x … - девелоперские ветки.

4.x, 5.x, 6.x … - стабильный API

?

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

твой выбор только Qt

Чего, в рот воды набрал?

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