У чому різниця між додатками GTK та QT?


54

Багато пакетів доступні у версіях GTK та QT.

  • Яка різниця між ними?
  • Чи є різниця у продуктивності чи методі роботи?

Відповіді:


41

Загалом, різниця з точки зору користувача повинна бути суто косметичною. Qt і GTK задають теми незалежно (через, наприклад, qtconfigабо gtk-chtheme), але це гармонізується деякими робочими середовищами.

GNU / Linux, як правило, більш орієнтований на GTK, ніж Qt, в тому сенсі, що перший використовується частіше, тому ви, можливо, захочете віддати перевагу йому, якщо вам надано вибір; виняток буде в KDE, який використовує Qt для власних застосувань - хоча жоден із цих факторів не має великого значення.

Більш важливим питанням буде проблема в контекстах з дуже обмеженою оперативною пам’яттю (як в, <1/4 ГБ); у цьому випадку ви, ймовірно, хочете, щоб система використовувала виключно GTK або Qt, але не обидва. На більшості сучасних настільних комп’ютерів з гігабайтами пам’яті це не викликає занепокоєння - використання обох значних коштів може коштувати вам додатково (дивна здогадка) 50-100 Мб.


Зауважте, що існують також різні версії GTK (2 і 3) і Qt (3 і 4), які все ще широко використовуються, але не є сумісними назад (тому програма Qt 3 не може використовувати бібліотеки Qt 4). Однак обидві версії можуть існувати в системі одночасно, і найбільш серйозним наслідком цього буде потенціал для плутанини та трохи більше спогаду пам'яті.


8
Мені було б дуже цікаво дізнатися, як ви прийшли до висновку, що Linux орієнтований більше на GTK? Linux, як правило, має на увазі лише ядро ​​Linux, яке взагалі не має упередженості щодо жодного з інструментальних комплектів, оскільки це ядро ​​ОС, а не програма користувальницького інтерфейсу. Якщо ви мали намір передбачити GNU / Linux як операційну систему, я все одно оскаржу ваші вимоги. Сказати, що GNU / Linux більш орієнтований на GTK, тому що Ubuntu - найпопулярніший дистрибутив - це як сказати, що Крістіано Роналду є найкращим спортсменом, тому що футбол - це найвідоміша гра у світі. (Я б заперечував це теж)
darnir

10
@darnir Я поставив класифікатор "GNU", оскільки я мав на увазі операційну систему в розмовному значенні. Я захищаю свою тезу про те, що це більше GTK, ніж орієнтоване на Qt: GTK (який спочатку виступав за "набір інструментів GIMP", а GIMP = програма маніпуляції зображення GNU), GIMP та GNOME - це всі проекти GNU та основна частина їх бачення (користувальницької) системи для операційної системи, яка поєднується з ядром, - це те, що історично є «Linux». Таким чином, GTK був розроблений в основному для Linux, він також є рідним C (порівняно з Qt C ++), тоді як Qt - це справді кросплатформна сутність.
золотинки

1
Хоча я погоджуся з вами щодо історії та етимології GTK, це не означає, що GNU / Linux орієнтований на GTK. Насправді все навпаки, це підтверджується вашими твердженнями. GTK був розроблений для Linux, а не навпаки. Я б захистив свою тезу, заявивши, що Linux як ядро, а GNU / Linux як операційна система є агресивними щодо будь-якого інструментарію GUI. GTK часто спостерігається в дикій природі більше Qt через важку залежність від Ubuntu від нього. Також допомагає той факт, що він легший на системних ресурсах.
darnir

3
@darnir Так, ОС по суті є агностичним WRT інструментарієм GUI - я б не стверджував, що GTK є "рідним" інструментарієм і т. д. Але ви помиляєтесь, чому його "часто бачать в дикій природі більше" - GTK був найпоширеніший інструментарій на платформі ще до того, як Ubuntu навіть існував через вищезгадану взаємозв'язок з іншими фундаментальними частинами, які широко використовуються всіма дистрибутивами. Ось чому більшість програм для графічного інтерфейсу Linux вже є додатками GTK, і чому, без іншого контексту, продовжувати робити сенс сказати новому користувачеві "Ви можете обрати цього", а всі інші рівні. Але це насправді не має значення.
золотинок

Використання декількох різних наборів інструментів також вимагатиме набагато більше місця; Я не думаю, що це вплине на ефективність, хоча просто місце для інших речей.
DaimyoKirby

19

Ні, немає різниці у внутрішній структурі таких програм. GTK і Qt - це набір інструментів та фреймворків користувальницького інтерфейсу. Це бібліотеки, які розробники використовують для проектування графічних інтерфейсів.

Коли пишеться графічна програма (GUI), спочатку розробляються її основні внутрішні програми. Це те, що змушує програму працювати. Ви ніколи не бачите ядра, вони просто виконуються у фоновому режимі. Поверх цього ядра розроблений інтерфейс користувача (UI).

Тепер розробники могли розробити повний інтерфейс з нуля або повторно використовувати конструкції, зроблені іншими. Повторне використання дизайну має головну перевагу. Це дозволяє всім програмам на вашому комп’ютері виглядати подібними. Отже, вони використовують набори інструментів GUI. GTK і Qt - два надзвичайно поширених набори інструментів GUI.

GTK - це стандартний набір інструментів для GNOME, тоді як Qt використовується KDE. З точки зору користувача, зовнішність відрізняється лише зовнішнім виглядом. Програма залишається такою ж на душі.


4

Ще один важливий аспект, який слід врахувати, - це посилання на ліцензування Qt на розголошення їх ліцензії, яке прямо встановлено для вільного доступу для більшості некомерційних проектів, але комерційні відносини можливі і можуть мати обмеження для цього випадку. В той час, як GTK, чітко заявляйте, що його можна вільно використовувати навіть у власних додатках заяви GTK :

Are there any licensing restrictions?
GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. 

Ключовий аспект складної розробки графічного інтерфейсу буде покладатися на GLADE як набір для проектування та на те, чи підходить це посилання на підхідній галявині . Він має на меті бути крос-платформою, але може бути не настільки широко підтримуваною крос-платформою, як Qt.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.