3.2-Ders 2

Bu derste UI (User Interface) tasarlayıp, run-time (çalışma zamanında) ekranda gösterip merhaba dünya diyeceğiz.

"ders2" diye bir klasör oluşturup içerisinde "src" ve "formlar" adında iki adet daha klasör oluşturuyoruz. "src" klasörüne girip aşağıdaki kodu yazıp main.cpp olarak kaydedin.

#include <QApplication>
#include <QtUiTools>
#include <QFile>
#include <QWidget>

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

 QApplication app(argc,argv);

 //UI dosyasınındaki form'u okuyabilmek için
 QUiLoader formYukle;

 //ui dosyasını salt-okunut olarak aç
 QFile uiDosyasi("/home/nsm/Desktop/ders2/formlar/deneme.ui");
 uiDosyasi.open( QFile::ReadOnly );

 //ui dosyasındaki formu'u oluşturup bellek adresini dönder.
 QWidget *w = formYukle.load( &uiDosyasi );

 //dosyayı kapat
 uiDosyasi.close();

 //formu ekranda göster.
 w->show();

 return app.exec();

}  

ardında QT4 Designer ile dilediğiniz gibi bir form tasarlayıp "formlar" klasörünün içerisine "deneme.ui" olarak kaydedin.
Konsoldan main.cpp dosyasının bulunduğu konuma geçip aşağıdaki komutu verin

Linux için:
qmake-qt4 -project

Windows için:
qmake -project

bu dizinde oluşacak .pro dosyasına şu satırı ekliyoruz.
CONFIG +=uitools

yine konsolda şu komutları veriyoruz.

Linux için:
qmake-qt4
make

Windows için:

qmake
mingw32-make

ve programı çalıştıralım.

Peki ya form üzerindeki bir bileşene ulaşabilmek için ne yapmalıyız?
Örneğin "label1" adında bir QLabel nesnemiz olsun
QLabel *etiket = qFindChild( w, "label1");

qFindChild() fonksiyonu ile w ismi ile belirtilen widget'in(formun) içinde label1 isimli nesneyi bulup, QLabel * tipinde dönderip etiket işaretcisine atamış olduk, artık etiket işaretcisi üzerinden nesnemize ulaşabiliriz.

Yorumlar