LINUX.ORG.RU

Qt vs GTK в 2019 для написания простых интерфейсов.

 


2

1

Верно ли, что GTK(2,3,+) похоронить так и не смогли, он вполне себе живой в той же убунте в виде GTK3 (или GTK+ - не шарю) и он будет полегче в плане веса самой библиотеки, чем QT5? То есть, если мы пишем тулзу с GUI, то более экологически чисто, но возможно с большим гемороем, будет реализация её на GTK, при всех элитных удобных свистелках-перделках в QT5?

До этого много писал под Qt кросс-платформ штуки, никогда не писал под GTK ничего.

Qt5: что-то монструозное, 100500 гигов библиотек для простого интерфейса, какой-то гимор с лицензиями, статическими линкованиями.

GTK(2,3,+): что-то, что я не пробовал, но выглядит как что-то более скромное.

Голимые иксы: в принципе тоже норм, можно попробовать )

Почитал quora:
https://www.quora.com/Which-is-better-for-cross-platform-application-developm...

Be smart. Use Qt or WxWidgets when it matters. Use native APIs when it doesn’t. Leave GTK to the GIMP developers; it’s their baby and they’re the only ones who seem to know how to use it correctly.



Последнее исправление: letrovana (всего исправлений: 6)

живой

GTK2

эти слова в одном предложении не сочетаются

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

GTK2 уже мертв, GTK3 был мертвым уродом-мутантом с самого начала. Qt5 тоже не блещет красотой дизайна (во всех смыслах) но хотя бы подает признаки жизни.

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

если ты упомянул в ОП слова GTK и Qt, то срача не избежать

Избежать. Просто не срись и всё.

letrovana
() автор топика

GTK+ ты никогда не похоронишь, так как два релевантных браузера его используют. Ну и Java, Mono (C#) тоже завязаны на него.

Ну и всякие там Fedora, Ubuntu, Debian сделали ставку на GTK+.

P.S. В Ubuntu GTK+3.

EXL ★★★★★
()

QML для простых интерфейсов самое то.

Deleted
()

GTK ужасен. Какой-то совершенно нелепый фреймворк для 2019 года, где надо вручную делать то, что в других делается само.

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

не думай

так вот почему люди начинают разрабатывать на кьютэ - они не думают

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

Может просто не стоит разрабатывать прикладные приложения на Си в 2019?

Точно! Только либы, хорошие либы с хорошим API! А GUI как в deluge.

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

верно, библиотеки следует писать на Си с той целью, чтобы упростить создание биндингов к другим языкам

eternal_sorrow ★★★★★
()

Голимые иксы: в принципе тоже норм, можно попробовать )

И что ты будешь делать со своим приложением, когда иксы выкинут? А случится это довольно скоро. В Fedora, вон, процесс уже идёт. В Ubuntu не в LTS-дистрах – тоже, насколько я знаю.

GTK(2,3,+): что-то, что я не пробовал, но выглядит как что-то более скромное.

А ты попробуй. Все ведь познаётся в сравнении. Опыт работы с Qt 5 у тебя уже есть, а вот с GTK+3 – нету. Так что почему бы и не попробовать? Тем более GTK+3 тупо доступен в современных дистрибутивах Linux сразу из коробки, в отличие от того же, который в ту же Ubuntu нужно устанавливать из репозиториев.

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

А че аргументировать то? Достаточно посмотреть на это пальцетыкательное уродство, да ещё и исполненное в виде веб говна. Сколько бы у тебя не было оперативы GNOME3 съест всё что осталось после запуска браузера. HIG абсолютно наркоманский, да ещё и ломали его каждую версию. Трей? Иконки? Нормальное управление окнами? Меню? Это все чего в гноме нет. Могли бы хотя бы нормальных тем запилить, шрифтов и нарисовать наконец иконки которые не будут вызывать рвоту при взгляде на них. Короче заняться полезными вещами, вместо прибивания к своему поделию systemd. Хотя самой большой наркоманией в GNOME все таки является подобие реестра, хотя это ещё до GNOME3 придумали.

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

Но GTK и кроссплатформа один хрен вещи несовместимые.

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

eternal_sorrow ★★★★★
()

Qt vs GTK

Начать с того, что это сравнение ниссана с кузовом от тойоты. GTK - это аналог QtGui+QtWidget. В Qt дохрена ещё всего, чему аналогов в G*-стеке вообще нет, работа с БД, например. И это надо учитывать, говоря про «монструозность» Qt.

До этого много писал под Qt кросс-платформ штуки

Qt5: что-то монструозное, 100500 гигов библиотек для простого интерфейса, какой-то гимор с лицензиями, статическими линкованиями.

Мало писал, коль повторяешь замшелые мифы.

Пишешь опенсорс — гимор с лицензиями тебя вообще не касается.

Пишешь проприетарщину — либо линкуешься динамически и не знаешь проблем, либо обеспечиваешь возможность перекомпиляции программы с другой версией Qt (например, предоставив покупателю объектные файлы) и опять-таки не знаешь проблем.

Ну и Qt 4.8 ещё вполне себе работоспособна, если что. Если не тянуть в рот webkit/webengine, можно вообще без особых усилий обеспечить компилябельность одних исходников в Qt4 и Qt5. Я в DoubleContact так и делаю.

GTK я знаю хуже, но по имеющимся у меня представлениям, она очень хорошо подходит для написания Linux-only программ. Она действительно очень компактна и есть практически в любом линуксе. С кроссплатформенными программами хуже: чтобы собрать свою GTK-прогу под сраную винду, с виндой надо долго трахаться и тащить туда кучу всего (начиная с прочих библиотек и кончая системой сборки), в то время как Qt SDK просто ставится и работает. Да, это мнение мимокрокодила, знатоки могут оспорить.

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

GTK - это аналог QtGui+QtWidget

так ведь в том его и сила. если тебе нужно только GUI как фронтенд для своего кода, берёшь GTK. если нужно что то ещё, то в

G*-стеке

это наверняка есть. а если и нет, то нет никаких проблем заюзать любую стороннюю библиотеку.

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

Qt5: что-то монструозное, 100500 гигов библиотек для простого интерфейса, какой-то гемор с лицензиями, статическими линкованиями.

GTK+(2,3): что-то, что я не пробовал, но выглядит как что-то более скромное.

Не бери информацию из древних источников.
У Qt LGPLv3, GPLv2, либо GPLv3. У GTK+ LGPLv2.1+. Велика разница?
Да и с компоновкою тоже отличиям негде взяться.

То есть, если мы пишем тулзу с GUI, то более экологически чисто, но возможно с большим гемороем, будет реализация её на GTK+, при всех элитных удобных свистелках-перделках в Qt5?

Нет.

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

а если и нет, то нет никаких проблем заюзать любую стороннюю библиотеку.

В линуксе никаких проблем. В винде эту библиотеку придётся руками затаскивать и прикручивать к проекту, скорее всего, через абсолютные пути (которые сломаются при переносе проекта на другой комп). Мне, правда, подсказывали, что если навернуть MSYS, то в винде даже автотулзы работать будут. Но это имхо сильно более громоздко, чем Qt SDK.

Ну и не видел я полноценного стороннего аналога той же QtSql, если честно.

А если мне «нужно только GUI как фронтенд для своего кода», то я из Qt могу включить только core, gui и widgets. Но таких программ мало, если по-честному. В том же DoubleContact мне почти сразу понадобился xml, а теперь ещё и network на подходе...

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

Но это имхо сильно более громоздко, чем Qt SDK.

это только для разработки.

QtSql

да что ж в ней такого чудесного, что аж нет аналогов

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

а причём тут GNOME?

в GTK3 постоянно что-то ломают (точнее, ломали, скоро будут ломать GTK4), и вне экосистемы гнома смысла разрабатывать на нем приложения нет

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

когда иксы выкинут?

Во-первых, XWayland. Во-вторых, как ты себе это выкидывание представляешь? Сегодня я запускаю иксы, а завтра они превратятся в тыкву?

Moondancer
()

Ты на чем писать-то свою софтину собираешься?

morse ★★★★★
()
Ответ на: Neither от anonymous

Лучше mlib. Тоже кисточки от графического редактора, коими когда-то был GTK+ ;-)

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

А зачем переписывать

ну чтобы не ковырять си. впрочем, если тебе это доставляет удовольствие, то почему бы и нет. хоть на брейнфаке

и на чём?

на том, на чём считаешь нужным

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

Не 4.2, просто устарело. GTK+3 как раз недавно перестали-таки ломать. Зато засрали ворнингами о депрекации напоследок.

Moondancer
()

более экологически чисто, но возможно с большим гемороем

Религиозные фанатики такие фанатики...

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

так твоё «нет» было про

Нет, оно было про всё сразу.

то более экологически чисто [на GTK+]

Нет, разница незначительна. Но с оговоркой.

но возможно с большим геморроем [на GTK+]

Нет, разница незначительна. Но тоже с оговоркой.

всех элитных удобных свистелках-перделках в Qt5?

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

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

Просто ты не знаешь что лeжит в /usr/share/themes ты же пони следовало ожидать , там темы почти все на ГТК 2 ну и свитчи кое где прикрутили что бы тройка в ГТК 2 тоже могла

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