Sebagai seorang programmer C ++ yang belajar, saya mencoba untuk memilih kerangka kerja GUI atau pustaka untuk proyek saya sendiri.
Saya memiliki beberapa pengalaman dengan Qt: sangat mudah, ia memiliki dokumentasi yang sangat bagus, dan menyediakan banyak alat, tetapi tampaknya menduplikasi banyak pustaka standar.
Apakah semua perpustakaan C ++ GUI seperti ini? Apa yang harus saya cari di perpustakaan GUI? Bagaimana cara menentukan mana yang terbaik untuk diberikan masalah tertentu? Haruskah saya fokus pada satu perpustakaan tertentu, atau apakah layak untuk mengenal beberapa dari mereka karena mereka dapat melayani tujuan yang berbeda?
c++
gui
cross-platform
BenjaminB
sumber
sumber
Jawaban:
Bukan sesuatu yang umumnya berlaku untuk gui libs, tetapi mekanisme sinyal / slot Qt adalah solusi yang cukup bagus
Qt dan WX keduanya menyediakan dokumen yang cukup bagus, baik referensi maupun tutorial
Qt membutuhkan alat, lib lain tidak memerlukan apa pun di luar kompiler biasa - terutama yang menggunakan tata letak jenis sizer bahkan tidak memerlukan editor gui.
Ini umum karena hanya beberapa tahun yang lalu Anda tidak dapat mengandalkan std lib dan STL hadir atau berfungsi pada semua platform. Bahkan hari ini hal ini selalu berlaku pada platform seluler. Seringkali meskipun Anda TIDAK HARUS menggunakan kelas koleksi mereka, atau Anda menemukan mereka plug kompatibel dengan yang stl
Umumnya Anda memerlukan gui lib untuk melakukan masalah jenis aplikasi besar desktop standar atau antarmuka seluler / web yang sangat dapat dikonfigurasi. Seringkali gui lib memiliki rasa untuk keduanya, seperti Qt dan QWT
sumber
Jangan mencoba membungkus semuanya menjadi satu deskriptor. Akan selalu ada perpustakaan yang buruk atau bahkan tidak berdokumen. Mereka mungkin menemukan kembali roda 90% dari waktu atau menyediakan beberapa fungsi terobosan baru.
Anda harus mencari perpustakaan yang memecahkan kebutuhan Anda dengan cara seefisien mungkin. Yang saya maksud dengan efisien adalah kombinasi antara kode-bijaksana dan kinerja. Jelas jika pustaka terlihat mengingatkan Perl Anda tidak ingin menggunakannya untuk kode produksi bahkan jika itu memberikan eksekusi sangat cepat. Sebaliknya Anda tidak menginginkan sesuatu yang sangat bertele-tele tetapi dengan kecepatan eksekusi yang terhambat.
Tidak selalu ada cara pasti untuk menentukan X apa yang terbaik untuk dilakukan Y . Jika Anda dapat menemukan beberapa jenis data yang tidak bias sehubungan dengan masalah Anda dan solusi yang ditawarkan oleh perpustakaan itu satu arah. Pengetahuan dan pengalaman juga merupakan cara terbaik untuk menentukan bagaimana solusi akan sesuai dengan kebutuhan Anda.
Itu semata-mata tergantung pada apa yang Anda lakukan dan apa kebutuhan Anda. Jika Anda perlu bekerja pada X maka Anda perlu mempelajari perpustakaan terbaik untuk itu. Jika Anda hanya pernah mengerjakan satu hal dan Anda memiliki satu perpustakaan yang sesuai dengan kebutuhan Anda, mengapa repot-repot? *
* Catatan: Tidak ada salahnya untuk mengetahui lebih lanjut, saya hanya mengatakan dari sudut pandang murni "Menyelesaikan pekerjaan".
sumber
Setelah melakukan lusinan port GUI dan aplikasi GUI lintas-platform sejak 1989, saya telah menemukan pertanyaan pertama yang harus selalu Anda putuskan adalah tampilan dan nuansa . Pustaka GUI lintas platform berjalan di sepanjang spektrum dengan cara itu.
Tampilan dan rasa yang serupa di mana-mana
Ini berfungsi baik jika perangkat lunak Anda ditujukan untuk orang-orang yang harus sering mengganti platform, dan ingin perangkat lunak mereka berperilaku identik di mana-mana. Ini umum dalam beberapa aplikasi ilmiah, di mana Anda mungkin orang Linux yang mengunjungi lab Mac, atau seseorang memberi Anda satu ton Windows boxen sebagai bagian dari hibah.
Contoh perpustakaan seperti itu adalah Tk dan GTK +.
Platform terlihat dan terasa asli di mana-mana
Ini jauh lebih baik untuk aplikasi komersial dan pengguna non-teknis, karena orang-orang itu jauh lebih tertarik pada antarmuka pengguna yang akrab. Bahkan, mereka cenderung menolak untuk menggunakan perangkat lunak yang tidak memiliki tampilan dan rasa asli.
Contoh perpustakaan seperti itu adalah wxWidgets, RealBasic, Cocotron, dan Qt.
Setelah Anda membuat keputusan itu, maka Anda dapat mulai melihat domain masalah Anda secara lebih rinci dan menentukan toolkit mana yang paling cocok.
sumber
Di bawah aspek teknis Anda harus melihat dari dekat perizinan. Qt hanya gratis untuk pengembangan sumber terbuka non komersial. Jika Anda mulai menggunakannya di bidang lain seperti pekerjaan kontrak, Anda harus memastikan bahwa Anda dan pelanggan atau perusahaan Anda dapat menggunakannya dan bahwa biayanya dapat diterima oleh semua pihak yang terlibat.
sunting: Seperti yang dikatakan Raphael, saya salah tentang lisensi Qt. Namun saya pikir ini adalah bagian penting dari proses pengambilan keputusan untuk perpustakaan GUI yang mungkin ingin digunakan seseorang, untuk memastikan bahwa ia dapat melakukan ini dengan cara yang legal.
sumber
Selain dari segi teknis pilihan, poin lain adalah ketersediaan pengembang dengan pengetahuan tentang alat yang dipilih, untuk masa pakai produk. Ini harus menjadi pendorong utama dalam memilih semua alat pengembangan di dunia komersial. Jika itu hanya untuk Anda, maka lakukan apa yang Anda inginkan, namun jika tidak, tetap pada alat yang diketahui pengembang, ingin tahu, dan yang terkenal. Jauh lebih mudah untuk merekrut kontraktor atau karyawan untuk aplikasi Java / Swing atau C ++ / QT daripada aplikasi ADA / (isi toolkit GUI yang belum pernah Anda dengar di sini).
Apakah toolkit yang Anda pilih "memajukan karier" untuk Anda dan semua orang, atau apakah itu merupakan kewajiban pada resume?
sumber