LINUX.ORG.RU

Почему используются в основном только две графические библиотеки?

 , , , ,


0

3

Не могу понять, почему на Линуксе используются только две основные графические библиотеки – GTK и Qt. Ведь есть же много других, кроссплатформенных.

Вот, например, в этой статье называют также: Electron.js, NW.js, Avalonia, WxWidgets и Tkinter.

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

Почему? На электроне куча софта, что аж здесь начинают скулить.

Авалония это dot net, он не прижился на линуксах.

WxWidgets и Tkinter это страхолюдины, ими только пользователей отпугивать серыми формочками.

ox55ff ★★★★★
()

Electron.js, NW.js,

JS. Ну ты понел.

Avalonia

Помимо нее, поставь для начала себе и пользователю .NET.

WxWidgets

К сожалению, очень глючная и недоделанная библиотека. Попробуй плотно попользоваться чем-нибудь, написанным на ней, например Code::Blocks, и увидишь глюкодром во всей своей красе. Кстати, разрабы похоже уже устали от этой либы, и забили на Code::Blocks четыре года назад. Хотя казалось бы - такая опенсорчная открытая IDE, быстрая и функциональная, бери и развивай. Но нет.

Tkinter

На вот, посмотри современный скриншотик:
https://habrastorage.org/r/w1560/getpro/habr/upload_files/eb9/d3a/a71/eb9d3aa...

Посему осталось только GTK и Qt. Но судя по тому, как развивается GTK - да никак она не развивается. Посему скоро на GTK ничего адекватного не останется. Будут тянуть ее из-за Gimp и Гнома, но не более того.

Xintrea ★★★★★
()

WxWidgets

Используются. Например MyRuLib и Filezilla их используют.

vbcnthfkmnth123 ★★★★★
()

Очень обобщённое и неправильное утверждение, смотри сюда:

  1. Не графические библиотеки, а GUI-тулкиты. А графическая библиотека это что-то вроде cairo или sdl.

  2. Используется гораздо больше библиотек, но ты на них софта не увидел потому что не искал, верно?

  3. GTK это gtk+2, gtk+3, gtk+4, культи аналогично с цифрой больше. Все они, по сути-то, разные библиотеки как программно, так и визуально.

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

WxWidgets

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

KiCad

Ну, ты ерундой-то не болтай…)

aol ★★★★★
()

Есть https://www.ultimatepp.org, там есть сравнения с Qt и wxWidgets. Но я не знаю никого, кто это использует. :)
ImGui популярна в определённых кругах.

dataman ★★★★★
()

В основном потому, что на этих библиотеках построены самые крупные окружения: gnome и kde. С этим уже связана целая вереница дополнительных причин: активность поддержки, качество документации, качество библиотеки, количество готового кода для разных случаев, перспективы развития, внешний вид, поддержка тем итд.

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

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

neumond
()

На википедии часто пишут чушь. Qt - это больше чем библиотека компонентов, там много чего есть… Это почти язык полноценный со сборщиком мусора

Electron.js, NW.js

Это тупо браузеры без привычных тебе вкладок, адресной строки, они тупо тебе лапшу из html/css/js выводят + есть возможность взаимодействовать с файловой системой хоста (сохранение файлов браузером — это немного другое)

WxWidgets

Старое и страшное

Tkinter

Очень старое и очень страшное

rtxtxtrx
()

графические библиотеки

Qt

Двойка. Это НЕ графическая библиотека. Это целый фреймворк, куда кроме UI, входят ещё библиотека базовых классов (включая человеческие строки, контейнеры, система переводов), СУБД-независимая библиотека работы с БД, модули для XML, OpenGL, сети и ещё дохрена всего. И собственная система сборки впридачу.

И оно всё модульное. Например, можно взять связку QtCore, QtSql и QtNetwork и написать игровой сервер. И никакой графики там в помине не будет. Насколько он будет производителен, вопрос отдельный (в первую очередь, проверять надо QtNetwork), но принципиально это вполне возможно.

Поэтому сравнивать Qt и GTK, как это делают некоторые диванные эксперты на ЛОРе, заведомо некорректно. Сравнивать, если уж на то пошло, надо Qt и связку GObject+GTK+libxml2+что там ещё для написания реального приложения понадобится.

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

Не графические библиотеки, а GUI-тулкиты. А графическая библиотека это что-то вроде cairo или sdl.

Да, тоже дельное замечание, но уж к этому я приматываться не стал.

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

Не графические библиотеки, а GUI-тулкиты

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

Используется гораздо больше библиотек, но ты на них софта не увидел потому что не искал, верно?

Не верно. Я не говорил, что не нашёл на них софта. Я просто исходил из общего фона на форумах и в роликах на Ютюбе. Везде говорят только про эти две. А так-то конечно есть и другие. Просто реже используются.

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

Кто говорит библиотека, кто фреймворк, кто тулкит. И кому верить?

Потому, что это разные вещи. GTK – графический тулкит. Qt – фреймворк, куда входят, в том числе аж 2 графических тулкита. Библиотекой можно назвать и то, и другое, хотя Qt – это набор библиотек, скорее. И ещё библиотеками является многое другое, что ни к фреймворкам, ни к тулкитам не относится, та же libxml2, к примеру.

hobbit ★★★★★
()

В общем, суть я уловил, спасибо всем )) Теперь буду пытаться разобраться в понятиях «библиотека», «тулкит» и «фреймворк», раз это так принципиально. В общих чертах понятно. Библиотека – это просто набор чего-то однотипного. Граф. библ. – набор граф. элементов. С другими двумя терминами пока плаваю. Но я только учусь, мне можно ))

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

Tkinter это страхолюдины

Для него есть неплохие темы оформления, выглядят прям современно.

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

Помимо нее, поставь для начала себе и пользователю .NET.

Не порите чушь, ей больно. Уже давно можно таскать и библиотеки и рантайм в самом приложении.

На вот, посмотри современный скриншотик:

Дизайн сделанный настоящими программистами. Для всех остальных есть современные темы для tcl/tk:

https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/assets/themes/themes.gif

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

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

Довольно просто различить - «графическая библиотека» будет давать тебе возможность рисовать примитивами («прямоугольник», «изображение»), а UI-тулкит позволяет использовать виджеты («кнопка», «панель»).

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

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

Они ж не просто раз в месяц пересобирают. Хотя в год меньше сотни изменений обычно. Насколько я понял на текущий момент они хотят доделать cland-client, как альтернативу другого инструмента автодополнений. На wxwidgets 3.2 давно портировали. Debian, Fedora, Gentoo в репозиториям имеют опакеченнве версии с этими внесёнными изменениями.

Но пользователи всё же надеятся на полноценный выпуск новой версии и терзают их вопросом «когда!?»

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

С тулкитом все просто: GTK — это изначально GIMP Tool Kit, те разработчики приложения для обработки графики сделали часть исходников, отвечающих за отрисовку окошечек, элементов интерфеса и тд свободными, имя они сами придумали. Tool - это утилита, которая может использовать кучу команд, запускать другие либо вообще простенькое графическое приложение. Kit — это связка, те тулкит - связка утилит или собрание полезных программ, средств разработки. Есть еще тулчейн… Но тут все дело в терминологии. Это как пытаться точно определить к какой расе принадлежат индусы. Всегда есть что-то на грани, что вызывает когнитивный диссонанс. GTK — это фреймворк для разработки графических приложений. QT — это фреймворк для разработки графических, консольных и клиент-серверных приложений (у нас тут все равно клиент графический, а сервер - консольный). А на педивикии пишут идиоты, причем, если сейчас ее поправить, написав, что GTK фреймворк, прибежит какой sjw-активист какой из Москвы, специализирующийся на политоте всякой, с синдромом вахтера и потрет все, считая что он лучше разбирается в теме. Там раньше лучше было. Были хорошие статьи по истории, географии, программированию, а потом наступила эпоха Netflix и начали налагать не на рациональное восприятие мира, а на «чувственное», набрали в модераторы каких-то «не таких как все» — это официальная политика Wikimedia Foundation.

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

WxWidgets всё равно потребует GTK для работы.

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

Да не принципиально это. Хоть как назови.

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

культи аналогично с цифрой больше. Все они, по сути-то, разные библиотеки как программно, так и визуально.

Qt нужно разделять не на версии, а на QtWidgets и QtQml. Qt виджеты не особо отличаются между версиями, Qml конечно сильно меняется и постоянно обзаводится новым функционалом.

rumgot ★★★★★
()

Qt активно развивается и за ней стоит организация, которая занимается только этим. Gtk развивается не очень активно, за ней есть GNOME Foundation, но вряд ли gtk там в приоритете. К тому же gtk не привлекателен для потенциальных пользователей/разработчиков. Вот например Qt:

  • Удобные строки
  • Своя Ide / дизайнер
  • Крутая документация
  • Qml позволяет делать дизайн любой сложности
  • Куча классов на все случаи жизни
  • Упрощение работы с удалением объектов

Что из этого есть у gtk?

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

wxwidgets вроде ж норм выглядит. И что плохого в серых формочках?

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

Бетки не считаются. Это 2.99 ещё 10+ лет будет беткой, а в релизной ветке бдт выходить новые и новые версии. А через 10 лет скажут что гтк3 ненужно уже устарел и надо делать 2.999 с каким-нить другим тулкитом.

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

Но судя по тому, как развивается GTK - да никак она не развивается.

Зачем развиваться тому что и так идеально?

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

gtk+3 и gtk+4 очень похожи. В gtk+-4 более причесанный api.

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

Упомяну ещё один тулкит, как мне кажется незаслуженно обделëнный вниманием: Fox Toolkit

Говорят вроде не очень развит и с кроссплатформой не очень всё.

FLTK во всём лучше его на мой взгляд, плюс там хорошая интеграция с OpenGL.

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

Ткинер не удобен, электрон есть браузер, полудохлый вхвиджетс в бекенде использует gtk, как к слову и браузеры почти все, да и много чего ещё

Qt сделан адекватно и относительно малоежка, много к каким языкам есть биндинги

Gtk, как и многое на си, линкуется к чему угодно

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

Автор топика тут ни при чём. Ты написал что гтк тянут из-за гимпа, а это не так. Гимпу нужно гтк2, а у гтк2 новые версии не выходят.

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

А я уже ответил что его ещё 10 лет будут перетягивать и в итоге забьют.

Мне что GTK что GTK2 - все едино

Мда. Ещё раз: то, что нужно гимпу, никто не тянет. Гтк «тянут» (на дно) гномеры для своего ненужного DE, и больше ни для чего. Остальные только пытаются им пользоваться.

firkax ★★★★★
()

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

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

Видимо по этому gtk2 и не обновляется

Зачем выкидывают ток непонятно

nikitalol
()

Avalonia

У нее производительность хуже чем у WPF на винде.

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

На вот, посмотри современный скриншотик:

ты специально самый всратый скриншот нашел?
Обынчно tk как-то так выглядит:
https://upload.wikimedia.org/wikipedia/commons/3/31/Tk-Demo_using_Tk_8.6.6_on...
https://tkproe.dengensys.com/wp-content/uploads/2021/04/tkproeScreenShot1.png
https://c.fsdn.com/con/app/proj/snmpb/screenshots/221066.jpg
https://onstartup.ru/wp-content/uploads/2018/05/tkmib.jpg

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

Что не так с многооконностью? Каждая программа выполняет свою задачу - редактор схем, редактор плат и т.д.. Или ты что-то другое имел в виду?

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

вы нарочно подбирали старое-старое (MiB например)? Хотя как ещё может выглядить база и редактор MiB :-)

Tk на самом деле выглядит вот так:

https://wiki.tcl-lang.org/page/List of ttk Themes это доступные темы оформления виджетов Tk.

https://tktreectrl.sourceforge.net/ наиболее часто-используемый виджет

https://wiki.tcl-lang.org/page/ale_themes, ttk themes for alited это наш человек намонстрячил редактор

всё вполне современно

MKuznetsov ★★★★★
()

Tkinter - это Tk. Он страдает от оставшихся в памяти людей древних версий которые могли отрисовывать только серые формочки, причём одинаково на всех платформах. И выглядело это чуть хуже чем lesstif. Но это давно в прошлом, а с точки зрения кода Tcl/Tk - крайне приятное сочетание (к сожалению, Python/Tkinter сильно ему уступают по приятности). Вот, посмотри современные скриншотики с темами: https://wiki.tcl-lang.org/page/List+of+ttk+Themes Для линукса есть нормальные темы, хотя отрисовываться через Gtk/Qt не умеет, а на оффтопиках вообще всякие aqua и winnative.

Про остальное уже ответили.

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

ты специально самый всратый скриншот нашел?
Обынчно tk как-то так выглядит:

То есть, твои скриншотики - это не всратость? :) Ну 20 лет назад такое, в принципе, было допустимо, но сейчас...

Xintrea ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.