GTK ve QT uygulamaları arasındaki fark nedir?


54

Hem GTK hem de QT versiyonlarında birçok paket mevcuttur.

  • Aralarındaki fark nedir?
  • Performans veya çalışma yönteminde bir fark var mı?

Yanıtlar:


41

Genel olarak, bir kullanıcı bakış açısından fark tamamen kozmetik olmalıdır. Qt ve GTK temaları bağımsız olarak ayarlar (örneğin, qtconfigveya aracılığıyla gtk-chtheme) ancak bu, bazı masaüstü ortamları tarafından uyumlu hale getirilir.

GNU / Linux, eskiden daha sık kullanıldığı anlamında Qt'dan daha GTK odaklı olma eğilimindedir, bu yüzden seçim yapıldığında tercih etmek isteyebilirsiniz; bir istisna, bu faktörlerin hiçbiri çok önemli olmasa da, kendi uygulamaları için Qt kullanan KDE altında olacaktır.

Daha önemli bir konu, çok sınırlı RAM içeren bağlamlarda olacaktır (olduğu gibi, <1/4 GB); Bu durumda, sistemin muhtemelen sadece GTK veya Qt kullanmasını istersiniz , fakat ikisini birden kullanmazsınız. Ancak, gigabayt belleğe sahip çoğu modern masaüstünde, bu bir endişe kaynağı değil - her ikisini de kullanmanız size fazladan bir maliyet (vahşi tahmin) 50-100 MB olabilir.


Hem GTK (2 ve 3) hem de Qt (3 ve 4) 'ün hala yaygın olarak kullanılan ancak geriye uyumlu olmayan farklı sürümleri olduğunu unutmayın (bu nedenle bir Qt 3 uygulaması Qt 4 kitaplıklarını kullanamaz). Bununla birlikte, her iki versiyon aynı anda bir sistemde mevcut olabilir ve bunun en ciddi sonucu karışıklık potansiyeli ve biraz daha fazla hafıza kaybı olabilir.


8
Linux'un daha GTK odaklı olduğu sonucuna nasıl geldiğinizi bilmek isterim. Linux, genellikle, genellikle bir GUI kullanıcı alanı programı değil, bir işletim sistemi çekirdeği olduğundan, genel olarak araç setlerinden hiçbirine karşı bir öneme sahip olmayan Linux çekirdeğini ifade eder. Eğer bir işletim sistemi olarak GNU / Linux'u kastediyorsanız, yine de talebinize itiraz ediyorum. GNU / Linux'un daha GTK odaklı olduğunu söylemek, çünkü Ubuntu'nun en popüler dağıtım şirketi Christiano Ronaldo'nun en iyi sporcu olduğunu söylemek gibidir, çünkü futbol dünyadaki en çok oynanan oyundur. (Ben de buna itiraz ediyorum)
kahrolası

10
@darnir "GNU" niteleyicisini, işletim sistemini konuşma biçiminde kastettiğim için koyacağım. Bunu tezimi savunmak edeceğiz öyle odaklı Qt daha GTK: GTK (başlangıçta "GIMP Araç Seti" için durdu ve GIMP GNU Image Manipulation Program =), GIMP ve GNOME tüm GNU projeleri ve temel bir parçası olan Çekirdeği ile eşleştirilen bir işletim sistemi (kullanıcı alanları) vizyonunun tarihsel olarak "linux" olduğu şeydir. Bu nedenle, GTK öncelikle linux için geliştirildi , aynı zamanda yerli C (Qt'nin C ++ 'ı), Qt ise daha çok platformlar arası bir varlık.
goldilocks

1
Sizinle GTK'nın tarihi ve etimolojisi konusunda hemfikir olsam da, bu açıkça GNU / Linux'un GTK odaklı olduğu anlamına gelmez. Aslında tam tersi doğrudur ve ifadeleriniz tarafından onaylanır. GTK, diğer yol için değil, linux için tasarlanmıştır . Tezimi, çekirdek olarak Linux'un ve işletim sistemi olarak GNU / Linux'un her GUI Toolkit'e karşı agnostik olduğunu belirterek savunuyorum. GTK, Ubuntu’nun buna çok fazla bağımlı olması nedeniyle sık sık Qt’dan daha fazla vahşi doğada görülüyor. Ayrıca sistem kaynaklarında daha hafif olması da yardımcı olmaktadır.
saat

3
@darnir Evet, işletim sistemi aslında agnostiktir. WI, GUI araç seti - GTK'nin "yerel" araç kiti olduğunu iddia etmem. Ubuntu'dan önceki platformda en yaygın kullanılan araç takımı, tüm dağıtımların yoğun olarak kullandığı diğer temel parçalarla yukarıda belirtilen ilişki nedeniyle bile vardı . Bu nedenle çoğu linux GUI uygulaması zaten GTK uygulamalarıdır ve neden daha fazla bağlam olmadan yeni bir kullanıcıya "O kadarını seçebilirsin" demek, diğerlerinin eşit olduğunu söylemek mantıklıdır. Ancak bu gerçekten önemli değil.
goldilock

Birden fazla farklı araç kiti kullanmak da daha fazla depolama alanı gerektirecektir; Bunun, performansı başka şeylerin yapabileceği alanı da etkileyeceğini sanmıyorum.
DaimyoKirby

19

Hayır, bu programların iç yapısında bir fark yoktur. GTK ve Qt kullanıcı arayüzü araç takımları ve çerçeveleridir. Geliştiricilerin grafiksel arayüzler tasarlamak için kullandıkları kütüphanelerdir.

Bir grafik (GUI) programı yazıldığı zaman, ilk olarak çekirdek iç kısımları geliştirilir. Programın çalışmasını sağlayan şey budur. Çekirdeği asla göremezsiniz , sadece arka planda çalışırlar. Bu çekirdeğin üstüne bir Kullanıcı Arabirimi (UI) tasarlanmıştır.

Şimdi, geliştiriciler tüm arayüzü sıfırdan tasarlayabilir veya başkaları tarafından yapılan tasarımları yeniden kullanabilirler. Tasarımın yeniden kullanılması büyük bir avantaja sahiptir. Bilgisayarınızdaki tüm programların benzer görünmesini sağlar. Bu nedenle, GUI araç kitlerini kullanırlar. GTK ve Qt, oldukça yaygın olan iki GUI araç setidir.

GTK, KDE tarafından kullanılırken GTK, GNOME için standart bir araçtır. Kullanıcının bakış açısına göre, sadece farklı görünen görünüşler var. Program kalpte aynı kalır.


4

Dikkate alınması gereken bir diğer önemli husus , açıkça kar amacı gütmeyen projelerin çoğunda serbestçe kullanılabilecek şekilde ayarlanmış olan lisans açıklamalarına Qt lisans bağlantısıdır , ancak ticari bir ilişki mümkündür ve bu durumda kısıtlamaları olabilir. GTK Oysa, hatta serbestçe kullanılabilir açıkça devlet tescilli uygulamaları GTK açıklamada :

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. 

Karmaşık GUI geliştirmenin kilit bir yönü, bir tasarım kiti olarak GLADE'e ve bunun yaklaşım glade bağlantınıza uygun olup olmadığına bağlı olacaktır . Çapraz platform olmayı hedeflemektedir, ancak Qt kadar kapsamlı bir şekilde desteklenmeyen çapraz platform olmayabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.