Apa perbedaan antara aplikasi GTK dan QT?

54

Banyak paket tersedia dalam versi GTK dan QT.

  • Apa perbedaan di antara mereka?
  • Apakah ada perbedaan kinerja atau metode kerja?
Pandya
sumber

Jawaban:

41

Secara umum, perbedaan dari perspektif pengguna harus murni kosmetik. Qt dan GTK menetapkan tema secara mandiri (melalui, misalnya, qtconfigatau gtk-chtheme) tetapi ini diselaraskan oleh beberapa lingkungan desktop.

GNU / Linux cenderung lebih berorientasi GTK daripada Qt dalam arti bahwa yang pertama lebih umum digunakan, jadi Anda mungkin ingin lebih suka ketika diberi pilihan; pengecualian akan berada di bawah KDE, yang menggunakan Qt untuk aplikasinya sendiri - meskipun tidak satu pun dari faktor ini sangat penting.

Masalah yang lebih signifikan adalah dalam konteks dengan RAM yang sangat terbatas (seperti pada, <1/4 GB); dalam hal ini Anda mungkin ingin sistem menggunakan GTK atau Qt secara eksklusif , tetapi tidak keduanya. Pada kebanyakan desktop modern dengan memori gigabytes, bagaimanapun, ini bukan masalah - menggunakan keduanya secara luas mungkin akan dikenakan biaya tambahan (tebakan liar) 50-100 MB.


Perhatikan bahwa ada juga versi GTK (2 dan 3) dan Qt (3 dan 4) yang berbeda masih banyak digunakan tetapi tidak kompatibel mundur (sehingga aplikasi Qt 3 tidak dapat menggunakan perpustakaan Qt 4). Namun, kedua versi mungkin ada pada suatu sistem pada saat yang sama dan konsekuensi paling serius dari hal ini adalah potensi kebingungan dan memori yang sedikit lebih besar.

goldilocks
sumber
8
Saya akan sangat tertarik untuk mengetahui bagaimana Anda sampai pada kesimpulan bahwa Linux lebih berorientasi GTK? Linux, biasanya hanya menyiratkan kernel Linux yang secara umum tidak memiliki bias terhadap salah satu dari toolkit, karena itu adalah kernel OS, bukan program ruang pengguna GUI. Jika Anda bermaksud menyiratkan GNU / Linux sebagai sistem operasi, saya masih akan membantah klaim Anda. Mengatakan bahwa GNU / Linux lebih berorientasi pada GTK karena Ubuntu adalah distro paling populer adalah seperti mengatakan Christiano Ronaldo adalah olahragawan terbaik karena sepak bola adalah permainan yang paling dimainkan di dunia. (Saya akan membantahnya juga)
darnir
10
@ Darnir Saya akan memasukkan kualifikasi "GNU" karena saya memang bermaksud sistem operasi dalam bahasa sehari-hari. Saya akan mempertahankan tesis saya bahwa ini lebih GTK daripada berorientasi Qt: GTK (yang awalnya merupakan singkatan dari "GIMP Tool Kit", dan GIMP = Program Manipulasi Gambar GNU), GIMP, dan GNOME adalah semua proyek GNU dan bagian inti visi (userland) mereka untuk sistem operasi, yang dipasangkan dengan kernel adalah "linux" secara historis. Jadi GTK dikembangkan terutama untuk linux, itu juga asli C (vs Qt's C ++), sedangkan Qt lebih dari entitas lintas-platform yang benar-benar.
goldilocks
1
Meskipun saya akan setuju dengan Anda tentang sejarah dan etimologi GTK, ini tidak secara tidak langsung menyatakan bahwa GNU / Linux berorientasi pada GTK. Sebenarnya yang terjadi adalah sebaliknya dan dikonfirmasi oleh pernyataan Anda. GTK dirancang untuk linux, bukan sebaliknya. Saya akan mempertahankan tesis saya yang menyatakan bahwa Linux sebagai kernel dan GNU / Linux sebagai sistem operasi adalah agnostik terhadap setiap GUI Toolkit. GTK sering terlihat di alam liar lebih dari Qt karena Ubuntu sangat bergantung padanya. Juga fakta bahwa lebih ringan pada sumber daya sistem membantu.
darnir
3
@darnir Ya, OS pada dasarnya agnostik WRT toolkit GUI - Saya tidak akan mengklaim GTK adalah toolkit "asli", dll. Tapi Anda salah mengapa itu "lebih sering terlihat di alam liar" - GTK adalah toolkit yang paling banyak digunakan pada platform sebelum Ubuntu bahkan ada karena hubungan tersebut dengan bagian fundamental lain yang digunakan secara luas oleh semua distro. Inilah sebabnya mengapa sebagian besar aplikasi GUI linux sudah menjadi aplikasi GTK, dan mengapa, tanpa lebih banyak konteks untuk melanjutkan, masuk akal untuk memberi tahu pengguna baru "Anda juga dapat memilih yang itu", semuanya sama. Tapi itu tidak terlalu penting.
goldilocks
Memanfaatkan beberapa toolkit yang berbeda juga akan membutuhkan lebih banyak penyimpanan; Saya tidak berpikir ini akan berdampak kinerja, hanya ruang untuk hal-hal lain.
DaimyoKirby
19

Tidak, tidak ada perbedaan dalam struktur internal dari program tersebut. GTK dan Qt adalah toolkit dan kerangka antarmuka pengguna. Mereka adalah perpustakaan yang digunakan pengembang untuk mendesain antarmuka grafis.

Ketika program grafis (GUI) ditulis, pertama intinya dikembangkan. Inilah yang membuat program berjalan. Anda tidak pernah melihat intinya, mereka hanya mengeksekusi di latar belakang. Di atas inti ini, Antarmuka Pengguna (UI) dirancang.

Sekarang, pengembang dapat mendesain antarmuka lengkap dari awal, atau menggunakan kembali desain yang dibuat oleh orang lain. Menggunakan kembali desain memiliki keuntungan besar. Ini memungkinkan semua program di komputer Anda terlihat serupa. Oleh karena itu, mereka menggunakan toolkit GUI. GTK dan Qt adalah dua toolkit GUI yang sangat umum.

GTK adalah toolkit standar untuk GNOME sementara Qt digunakan oleh KDE. Dari sudut pandang pengguna, hanya tampilannya saja yang berbeda. Program ini tetap sama di hati.

darnir
sumber
4

Aspek penting lainnya yang perlu dipertimbangkan adalah tautan lisensi Qt dengan pengungkapan lisensi mereka yang secara eksplisit diatur agar tersedia secara bebas untuk sebagian besar proyek nirlaba, tetapi hubungan komersial mungkin dan mungkin memiliki batasan untuk kasus itu. Sedangkan GTK, nyatakan secara eksplisit bahwa itu dapat digunakan secara bebas bahkan dalam aplikasi eksklusif pernyataan 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. 

Aspek kunci dari pengembangan GUI yang kompleks akan bergantung pada GLADE sebagai kit perancang dan apakah itu cocok dengan tautan pendekatan rawa Anda . Ini bertujuan untuk menjadi cross platform, tetapi mungkin tidak sebanyak cross platform yang didukung secara luas seperti Qt.

Vass
sumber