Archive for the ‘ Qt ’ Category

Hello Qt

Ini contoh aplikasi super sederhana menggunakan Qt GUI framework. Contoh ini aku ambil dari buku “C++ GUI Designer with Qt 4, Second Edition”, buku ini bisa di beli dari amazon atau silahkan cek di salah satu link bagian “Tutorial” di blog ini.

Untuk memulai membuat aplikasi Qt terlebih dahulu kita harus menyiapkan Qt SDK sesuai dengan versi Sistem Operasi yang kita gunakan, lihat posting sebelumnya agar lebih jelas. Selain itu kita juga perlu menginstall IDE yang sesuai, kali ini dan seterusnya saya akan gunakan NetBeans IDE C++ dan kebetulan NetBeans versi 6.7 sudah support C++ Project untuk Qt.
Seperti biasa sebelum memulai mengetik program kita harus membuat project terlebih dahulu, File->New Project kemudian pilih C++ -> C++ Qt Application, isikan nama project dan lokasinya apabila sudah klik finish. NetBeans akan membuatkan beberapa file termasuk file *.pro yang menjadi standar project untuk aplikasi Qt.
Secara default sebuah file *.cpp akan tersedia dengan nama main.cpp apabila belum berubah maka isinya akan seperti ini

#include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

return app.exec();
}

Kode diatas merupakan program paling sederhana dari aplikasi Qt dan tidak menampilkan apa-apa. Ada sedikit perbedaan dibagian #include apabila kita bandingkan dengan source yang ada pada buku “C++ GUI Designer” tetapi hal itu tidak menjadi masalah asalkan kita tahu konfigurasi folder-folder yang diikutkan sebagai include pada kompiler C++.
Rubah source code diatas menjadi

#include
#include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

QLabel *label = new QLabel(“Hello Qt!”);
label->show();

return app.exec();
}

Apabila terjadi error (tanda garis merah dibawah beberapa kode) kemungkinan besar adalah NetBeans belum mengenali beberapa Kelas terutama kelas QLabel. Apabila hal itu terjadi maka sedikit konfigurasi dibutuhkan untuk menangani error tersebut.Agar NetBeans mengenali folder yang berisi file-file header C++ milik Qt. Caranya pilih Tool -> Option, pilih icon C/C++ pada bagian atas kemudian pilih Tab “Code Assistance” dan tambahkan alamat direktori tempat file-file header milik Qt berada. Direktori tersebut berada pada [qtsdk_instalation]/include.

Sebenarnya NetBeans telah secara otomatis mencari direktori tempat instalasi Qt SDK berada, jadi pada umumnya konfigurasi diatas tidak diperlukan. Setelah tidak ada error yang muncul kita bisa langsung menjalankannya. Tekan F6 untuk menjalankan program.

Program diatas menampilkan sebuah label yang berisi text “Hello Qt”. Perhatikan kode diatas, cukup mudah bukan ? walaupun memang bahasa C++ lebih rumit dari pada Java tetapi konsep yang digunakan pada Qt Framework sudah Full OOP yang hampir sama dengan Java walaupun kita juga harus benar-benar paham konsep yang digunakan pada bahasa C++.
Dokumentasi kelas-kelas pada Qt Framework bisa kita lihat dengan menjalankan program Qt Assistance. File executable untuk Qt Assistance berada di folder bin tepatnya [qtsdk_instalation]/bin/assistant.

Mengenal Qt

Qt yang di baca “cute” adalah UI framework dan platform yang ditulis dengan bahasa C++, ada yang inget dengan KDE salah satu desktopnya linux selain Gnome, kalau di Ubuntu pakenya Gnome kalau Kubuntu pakenya KDE. Nah Qt ini yang dipakai untuk membuat KDE beserta applikasi-applikasi yang berada didalamnya.
Qt sebelumnya dimiliki oleh perusahaan yang bernama Trolltech dan sekarang perusahaan tersebut telah dibeli oleh Nokia. Qt framework tersedia secara gratis dan multiplatform (ada versi untuk linux, windows dan Mac).

Kita bisa menggunakan Qt dengan 2 bahasa yaitu C++ sebagai bahasa utama dan Python dengan menggunakan PyQt. Sekarang saya menggunakan C++ pada Qt. Ya tujuan utamanya adalah belajar C++ juga :).
Nah Qt ini menyediakan Qt GUI Designer untuk mempermudah desain User Interface selain itu juga ada Qt Assistance yang berisi dokumentasi kelas-kelas pada Qt beserta beberapa tutorial serta ada Qt Linguist yang berguna ketika kita ingin membuat aplikasi Qt yang multilanguage. Ketika Tool tersebut sekarang telah dikumpulkan jadi satu pada tool bernama Qt Creator.

Selain Qt Creator tersedia juga plugin untuk eclipse dan visual studio. Pada eclipse maupun visual studio tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist telah terintegrasi didalam IDE tersebut. Sedangkan untuk NetBeans versi 6.7 juga telah tersedia plugin Qt yang telah digabung dengan NetBeans CDT (Netbeans untuk C++) walaupun tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist masih menggunaakan tool external walaupun dapat langsung diakses dari dalam NetBeans. Plugin untuk eclipse dan Visual Studio dapat di download secara gratis di situs resmi Qt sedangkan untuk NetBeans plugin Qt sudah di bundle pada NetBeans versi 6.7.
Untuk memulai Qt terlebih dahulu kita harus mendownload Qt Framework. Qt Framework dapat di download secara terpisah atau bundle dengan Qt Creator. Untuk yang versi linux Qt Framework berbentuk tar.gz sehingga untuk instalasi kita cukup meng-extrack file tersebut ke tempat yang diinginkan contoh /opt. Setelah itu kita harus menambahkan direktori /bin kedalam system path pada environtment variable. Kebetulan saya menggunakan linux mint (ubuntu) maka environtment berada pada file /etc/environtment. Qt juga membutuhkan compiler C++, pada linux kita cukup menginstall gcc/g++ standar untuk dapat menggunakan Qt Framework. Sedangkan untuk windows kita dapat menggunakan MinGW.
Saya baru mencoba Qt untuk linux sedangkan untuk windows dan mac saya belum pernah coba sehingga tidak banyak tahu konfigurasi  qt untuk kedua sistem operasi tersebut.
Saya sendiri menggunakan Netbeans versi 6.7 untuk mendevelop Qt, ini dikarenakan saya sudah sangat terbiasa dengan editor yang ada pada NetBeans selain itu code completion di NetBeans masih lebih bagus dibanding Qt Creator maupun Eclipse (versi saya lho :)). Untuk konfigurasi Qt pada NetBeans tidak banyak yang harus dilakukan asalkan Qt telah di set pada environtment variable dan kita dapat mengakses command “qmake” pada console maka Netbeans dapat digunakan dengan baik.