GNU/Linux >> Belajar Linux >  >> Linux

Apa yang harus saya pilih:GTK+ atau Qt?

Karena Anda tampaknya terutama menargetkan Linux, maka pilihannya sebagian besar bergantung pada bahasa pemrograman yang ingin Anda gunakan.

Jika Anda membuat kode dalam C, maka jelas gunakan GTK+

Jika Anda membuat kode dalam C++, gunakan Qt, jika tidak, Anda memerlukan Gtkmm (pembungkus C++ di atas GTK+)

Jika Anda membuat kode dengan Python, GTK+ dan Qt memiliki binding untuk bahasa tersebut:lihat PyGtk, PyQt, dan PySide (yang diluncurkan sendiri oleh Nokia).

Jika Anda membuat kode di Java, Qt bukan lagi pilihan yang layak karena Nokia menghentikan Qt Jambi (Java binding untuk Qt).

Selain itu, Qt lebih unggul dalam hal scenegraph QGraphicsScene API-nya, mesin skripnya dibuat di atas Javascript Core (mesin yang menjalankan WebKit), kerangka mesin negara dan animasinya, serta UI deklaratif.

GTK+ tidak menawarkan sebanyak itu meskipun Anda dapat menggunakan Clutter bersamaan dengannya.

Jika Anda secara khusus mencari fitur DB, XML (GTK+ memiliki parser untuk subset XML) dan threading (GTK+ memiliki GLib), maka Qt akan menawarkan semua itu di QtSql, QtXml, dan QtConcurrent.

Secara keseluruhan, saya akan mengatakan Qt adalah pilihan yang pasti. Tapi GTK+ juga sangat mumpuni.

Saya tidak yakin Anda akan mendapatkan jawaban yang sangat jelas untuk pertanyaan Anda, yang menjelaskan mengapa beberapa orang tetap memilih Gnome daripada KDE atau sebaliknya. Pilih yang terbaik untuk Anda.

PS:Jika Anda berencana untuk juga menargetkan Symbian, lalu pilih Qt.

EDIT:Sesuatu yang juga bagus dengan Qt adalah QtWebView :itu membawa Chromium ke dalam aplikasi Qt Anda untuk menampilkan konten web. Lainnya menyematkan konten web ke dalam aplikasi mereka menggunakan misalnya Awesomium atau Berkelium.


Saya telah menggunakan GTK+, QT dan wxWidgets sebelumnya. Berikut ringkasan singkatnya:

Untuk proyek UI lintas platform pertama saya, saya memutuskan untuk menggunakan wxWidgets terutama karena pada saat itu lisensinya tidak seketat QT (QT adalah GPL dan hanya untuk Linux) dan memiliki UI khusus platform (tidak seperti GTK). Proyek ini bekerja dengan baik tetapi ada beberapa gangguan yang membuatnya dapat dikompilasi dan berjalan dengan baik di platform lain - terkadang beberapa peristiwa dijalankan secara berbeda dan semacamnya. Juga GDI di wxWidgets cukup lambat.

Selanjutnya saya menggunakan GTK untuk proyek lain dengan python. Untuk ini saya menggunakan binding python dan semuanya berjalan kurang lebih lancar. Saya tidak begitu menyukai fakta bahwa UI tidak terlihat asli di Windows dan Mac dan juga saat Anda meluncurkan aplikasi GTK+, UI selalu mengeluarkan banyak peringatan KRITIS yang sepertinya boleh diabaikan. :S

Akhirnya, saya melakukan proyek QT yang sangat sederhana sekarang karena Nokia telah mendapatkannya dan sangat brilian. Yang terbaik dari ketiganya. Pertama, jika Anda bukan anak sekolah lama yang lebih suka VI atau Emacs, QtCreator sangat brilian. Saya sangat menyukai VI dan menggunakannya selama bertahun-tahun tetapi saya lebih suka QtCreator untuk proyek C++ QT. Mengenai perpustakaan saya juga sangat menyukai dokumentasi dan API yang disediakan. QT memiliki konsep slot dan sinyal yang memperkenalkan kata kunci C++ baru dan preprosesor. Pada dasarnya, setelah membaca tutorial Anda akan mendapatkannya dengan mudah dan akan mulai menyukainya. Saya sekarang sedang mengerjakan iPhone dev dan rasanya agak mirip dengan paradigma UI Cocoa/Interface Builder.

Ringkasan:Saya akan memilih QT. Lisensinya cukup bagus dan SDK serta dokumentasinya sangat bagus.


Linux
  1. Tema suara di Linux:Apa yang harus diketahui setiap pengguna

  2. Apa yang harus saya gunakan selain windows.h di Linux?

  3. Apa yang dilakukan .cache? Ini menghabiskan ruang disk yang besar

  1. Apache vs Nginx:Server Web Mana yang Harus Anda Pilih

  2. Sebagai Pengguna Apa NGinx dan PHP harus dijalankan?

  3. Temukan dan perbarui b tidak berfungsi. Apa yang harus saya lakukan?

  1. Apa itu Kurasi Konten dan bagaimana cara melakukannya?

  2. Apa yang harus Anda ketahui sebelum mengaktifkan IPv6

  3. C++:pustaka regex apa yang harus saya gunakan?