Semua program C ++ saya sejauh ini telah menggunakan antarmuka baris perintah dan satu-satunya bahasa lain yang saya miliki adalah PHP yang tidak mendukung GUI.
Di mana saya mulai dengan pemrograman antarmuka pengguna grafis di C ++? Bagaimana cara saya membuatnya?
c++
user-interface
waiwai933
sumber
sumber
Jawaban:
Pada dasarnya, sistem windowing sistem operasi memaparkan beberapa panggilan API yang dapat Anda lakukan untuk melakukan pekerjaan seperti membuat jendela, atau meletakkan tombol di jendela. Pada dasarnya, Anda mendapatkan seperangkat file header dan Anda dapat memanggil fungsi di pustaka yang diimpor, seperti yang Anda lakukan dengan stdlib dan
printf
.Setiap sistem operasi dilengkapi dengan toolkit GUI sendiri, kumpulan file header, dan panggilan API, dan cara mereka sendiri dalam melakukan sesuatu. Ada juga toolkit lintas platform seperti GTK , Qt , dan wxWidgets yang membantu Anda membangun program yang bekerja di mana saja. Mereka mencapai ini dengan memiliki panggilan API yang sama pada setiap platform, tetapi implementasi yang berbeda untuk fungsi-fungsi API yang memanggil ke panggilan API OS asli.
Satu hal yang mereka semua miliki bersama, yang akan berbeda dari program CLI, adalah sesuatu yang disebut loop peristiwa. Ide dasarnya ada yang agak rumit, dan sulit untuk dikompres, tetapi pada dasarnya itu berarti tidak banyak yang terjadi di kelas utama / fungsi utama Anda, kecuali:
Ada banyak sumber daya tentang pemrograman berbasis acara. Jika Anda memiliki pengalaman dengan JavaScript, itu adalah ide dasar yang sama, kecuali bahwa Anda, penulisnya tidak memiliki akses atau kontrol atas loop peristiwa itu sendiri, atau peristiwa apa yang ada, satu-satunya tugas Anda adalah menulis dan mendaftarkan penangan.
Anda harus ingat bahwa pemrograman GUI sangat rumit dan sulit, secara umum. Jika Anda memiliki opsi, sebenarnya jauh lebih mudah untuk hanya mengintegrasikan server web tertanam ke dalam program Anda dan memiliki antarmuka berbasis HTML / web. Satu-satunya pengecualian yang saya temui adalah tutorial Cocoa + Xcode + interface builder + tutorial yang menjadikannya lingkungan yang paling mudah didekati oleh orang-orang yang baru mengenal pemrograman GUI yang pernah saya lihat.
sumber
Ada banyak perpustakaan GUI portabel gratis , masing-masing dengan kekuatan dan kelemahannya sendiri:
Terutama Qt memiliki tutorial yang bagus dan alat yang yang membantu Anda memulai. Nikmati!
Namun, perhatikan bahwa Anda harus menghindari fungsionalitas khusus platform seperti Win32 API atau MFC. Itu mengikat Anda tidak perlu pada platform tertentu dengan hampir tidak ada manfaatnya.
sumber
Algoritma independen OS " Membuat aplikasi GUI dalam C ++ dalam tiga langkah ":
Instal Qt Creator
Buat proyek baru (Aplikasi Qt Widgets)
Bangun itu.
Selamat, Anda punya GUI pertama di C ++.
Sekarang Anda siap membaca banyak dokumentasi untuk membuat sesuatu yang lebih rumit daripada aplikasi GUI "Hello world".
sumber
Diberikan komentar "say Windows XP sebagai contoh", maka opsi Anda adalah:
Berinteraksi langsung dengan sistem operasi melalui API-nya, yang untuk Microsoft Windows adalah kejutan panggilan Windows API . Referensi definitif untuk WinAPI adalah situs web Microsoft MSDN . Tutorial pemula online yang populer untuk itu adalah Tutorial Pemrograman API Win32 dari Forger . Buku klasik untuk itu adalah Windows Pemrograman Charles Petzold , Edisi ke-5 .
Gunakan platform (baik dalam hal OS dan kompiler) perpustakaan khusus seperti MFC , yang membungkus WinAPI ke dalam kelas C ++. Referensi untuk itu adalah MSDN lagi. Buku klasik untuk itu adalah Pemrograman Jeff Prosise Windows dengan MFC, 2nd Edition . Jika Anda menggunakan say CodeGear C ++ Builder, maka opsi di sini adalah VCL .
Gunakan pustaka lintas platform seperti GTK + ( Pembungkus C ++: gtkmm ), Qt , wxWidgets , atau FLTKyang membungkus API OS tertentu. Keuntungan dengan ini adalah bahwa secara umum, program Anda dapat dikompilasi untuk OS yang berbeda tanpa harus mengubah kode sumber. Seperti yang telah disebutkan, mereka masing-masing memiliki kekuatan dan kelemahannya sendiri. Satu pertimbangan ketika memilih mana yang akan digunakan adalah lisensinya. Untuk contoh yang diberikan, GTK + & gtkmm adalah lisensi di bawah LGPL, Qt berada di bawah berbagai lisensi termasuk opsi kepemilikan, wxWidgets berada di bawah Lisensi wxWindows sendiri (dengan nama ganti menjadi Lisensi wxWidgets), dan FLTK berada di bawah LGPL dengan pengecualian. Untuk referensi, tutorial, dan atau buku, lihat situs web masing-masing untuk detailnya.
sumber
Karena saya sudah berada di tempat Anda sekarang, saya pikir saya bisa "menjawab" Anda.
Faktanya adalah tidak ada cara mudah untuk membuat GUI. GUI sangat tergantung pada platform dan kode spesifik OS, itu sebabnya Anda harus mulai membaca platform target / dokumentasi OS pada API manajemen jendela. Hal yang baik adalah: ada banyak perpustakaan yang membahas keterbatasan ini dan perbedaan arsitektur abstrak menjadi API multi-platform tunggal. Yang disarankan sebelumnya, GTK dan Qt, adalah beberapa perpustakaan ini.
Tetapi bahkan ini agak terlalu rumit, karena banyak konsep baru, tipe data, ruang nama dan kelas diperkenalkan, sekaligus. Untuk alasan ini, mereka digunakan untuk dibundel dengan beberapa editor GUI WYSIWYG. Mereka cukup banyak membuat perangkat lunak pemrograman dengan GUI mungkin.
Singkatnya, ada juga "lingkungan" bebas untuk pengembangan GUI seperti Visual Studio dari Microsoft. Bagi mereka yang memiliki latar belakang pengalaman Delphi , Visual Studio mungkin lebih akrab. Ada juga alternatif gratis untuk lingkungan Visual Studio lengkap yang disediakan oleh Microsoft: Visual Studio Express , yang lebih dari cukup untuk memulai pengembangan GUI.
sumber
Saya menemukan situs web dengan tutorial "sederhana": http://www.winprog.org/tutorial/start.html
sumber
Sangat mudah untuk membuat .NET Windows GUI di C ++.
Lihat tutorial berikut dari MSDN . Anda dapat mengunduh semua yang Anda butuhkan (Visual C ++ Express) secara gratis .
Tentu saja Anda mengikat diri Anda dengan .NET, tetapi jika Anda hanya bermain-main atau hanya membutuhkan aplikasi Windows, Anda akan baik-baik saja (kebanyakan orang masih memiliki Windows ... untuk saat ini).
sumber
Saya menggunakan FLTK karena Qt tidak gratis. Saya tidak memilih wxWidgets , karena tes pertama saya dengan Hello, World! program menghasilkan executable 24 MB, FLTK 0,8 MB ...
sumber