404 Not Found.

Sayfa Bulunamadı

İstediğiniz sayfa sunucu üzerinde bulunamadı.

Not Found

The requested document was not found on this server.

Web Server at nesimia.com
Ders - 2
20.11.2007 - 18:13
EkleBunu Sosyal Paylaşım Butonu6 Yorum | 691 Okuma

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ırılalım.

QT UI Hello Word - Linux

 

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<QLabel*>( 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.

'Ders - 2' İle İlgili Diğer Yazılar İçin Tıklayın.

6 Yorum
Evrim
21.11.2007 - 11:06
Abi teşekürler....

her zaman ki gibi sorun çıkmadan çalıştı. Fakat bi sorum olacak.

Bu durumları nerelerde,ne gibi durumlarda kullanırız . Yani normalde .h dosyası falan oluyor,Onlara nasıl çeviriyoruz ???
Nesimi ACARCA
21.11.2007 - 13:50
.h dosyasına nasıl çevrileceğini diğer derste anlatacağım biraz sabır geliyor...
:)
Evrim
22.11.2007 - 22:00
Abi burayı pek anlamadım.Biraz daha açıp örnek verirmisin.
>>Peki ya form üzerindeki bir bileşene ulaşabilmek için ne yapmalıyız?
Nesimi ACARCA
23.11.2007 - 10:47
>Abi burayı pek anlamadım.Biraz daha açıp örnek verirmisin.
>>>Peki ya form üzerindeki bir bileşene ulaşabilmek için ne yapmalıyız?
Mesela Merhaba Dünya yazan label'e ulaşıp adını yazdırmak istiyorsun? yurıdaki kodda label1 isimli nesneyi bulup etiket işaretcisi ile temsil ediyoruz ve setText() üye fonksiyonu ilede işlemimizi gerçekleştiriyoruz.
etiket->setText("Evrim");
gibi.

Senin biraz cpp çalışman gerek en azından sınıf oluşturup kullanmak gibi.
17.12.2007 - 20:45
$DESKTOP değişkeni işe yaramaz mıydı.. yani kodun bizde de çalışması açısından aynen.. :)
Muallim
07.08.2008 - 9:59
Kardeş Windows'ta denedim her şey güzel de, çalıştırma aşaması nasıl windows'ta ?
'Ders - 2' İle İlgili Diğer Yazılar :
Google
 
En Son Yorumlar (Makaleler)
  • Nesimi ACARCA:QObject::connect(f.ornekButton, SIGNAL(clicked()), 0, SLOT( ornek->show() ) ); &#...
  • Cihan:Merhabalar, öncelikle bu güzel makale için tebrikler... Benim bir so...
  • Muallim:Kardeş Windows'ta denedim her şey güzel de, çalıştırma aşaması nasıl windows'ta ?...
  • Taner Senyurt:Hosgeldin aykut :D...
  • Aykut SAY:Merhabalar. biraz geç oldu ama QT ile bugün ilk kez tanıştım ve bir .Net geliştirici olarak yi...
  • Nesimi ACARCA:Bence tüm yüklemleri silip tekrar deneyin windows için http://www....
  • Doğugün Özkaya:kullandığım qt 4.3.4 olduğundan sanırım; "bin" klasörünün içinde qmake, uic ya da ...
  • Nesimi ACARCA:@Doğugün özkaya >bu bin path i nasıl tanımlayabilirim? Kurulum ...
  • Doğugün özkaya:maaalesef bende preference page de bin path i belirtilen ekilde girdiğimde hata veriyor. "bin p...
  • Yiğit Ağaoğlu:Linux altında Qt Eclipse integration oldukça sorunlu. Devamlı problem çıkartıyor. Onun yerine ...
Sponsor Bağlantı