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 - 3
23.11.2007 - 13:33
EkleBunu Sosyal Paylaşım Butonu3 Yorum | 907 Okuma

Bu derste arayüz dosyası olan .ui dosyasını .h dosyasını çevirip uygulama içinde kullanacağız.

"ders3" adında yeni bir klasör oluşturup qt4-designer ile bir Widget hazırlayıp "form.ui" olarak kaydedin ardından, aşağıdaki kodları bir metin editoründe yazıp adını "main.cpp" olarak kaydediyoruz.

#include <QApplication>

//ui_arayüzdosyasınınadi.h
#include "ui_form.h"

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

QApplication app(argc,argv);

QWidget *w = new QWidget;

Ui::Form f;
f.setupUi(w);
f.label->setText("<h1>Merhaba Dunya</h1>");

w->show();

return app.exec();

}

komut satırına geçip

Linux için:
qmake-qt4 -project
qmake-qt4
make

Windows için:
qmake -project
qmake
mingw32-make

komutlarını veriyoruz.

Peki burada ne yaptık?

4. satıra dikkat edilirse  #include "ui_form.h" satırı ile oluşturmadığımız bir dosyayı uygulamaya dahil ettik, peki derleyici bundan şikayetci olmazmı? Hayır "form.ui" olan dosyamız derleme esnasında okunur, cpp koduna çevirilip "ui_form.h" olarak kaydedilir, bu dosyadaki sınıfı istersek nesne olarak kullanır, istersek kalıtım yöntemi ile yeni bir sınıf oluşturup kullanabiliriz. Biz bu derste nesne olarak kullanacağız. 12. satırda bunu göstermektedir.

.ui dosyasından .h dosyasına otomatik olarak çevrilen her arayüz sınıfının içinde setupUi() adında üye fonksiyon vardır, işte bu fonksiyon ile arayüz oluşturulur.

13. satırda görüleceği gibi bu fonksiyon parametre olarak QWidget* türünde bir form alıyor(çünkü Widget tasarladık, eğer bir dialog tasarlasaydık QDialog* tipinde QDialog penceresi isteyecekti.) bu form'a formu tasarlarken kullandığımız bileşenleri ekliyor, ardında w->show(); ile bu form'u ve setupUi() üye fonksiyonunun oluşturduğu arayüzü görünür hale getiriyoruz.

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

3 Yorum
Evrim
23.11.2007 - 14:45
Abi ilgin,bilgin,paylaşımın için çok çook teşekürler.Her dersde daha çok yaklaşıyorum sanki sonuca,bunu hissediyorum. :)

Devamını merakla bekliyorum.

İyi çalışmalar.
Cihan
22.08.2008 - 15:58
Merhabalar, öncelikle bu güzel makale için tebrikler...

Benim bir sorum olacaktı: Bu koda #include "ui_ornek.h" ile bir Dialog basligi dosyası dahil etseydik, o pencereyi ekrana "f" QDialog u altındaki Ornek butonuna nasıl baglardık?
Ben denedim basarili olamadim. Kullandigim kod su sekilde (ornek i QDialog olarak tanimladiktan sonra):

QObject::connect(f.ornekButton, SIGNAL(clicked()), 0, SLOT( ornek->show() ) );

Buton sinyale hic bir tepki vermiyor...
Nesimi ACARCA
22.08.2008 - 17:32
QObject::connect( f.ornekButton, SIGNAL(clicked()), 0, SLOT( ornek->show() ) );

Evet tepki vermez. Çünkü, 0 (sıfır) yazdığınız yere ilgili nesnenin, SLOT() içerisine de çağıracağınız slot'un ismini yazmanız gerek.

Yani kodu düzeltecek olursak;
QObject::connect(f.ornekButton, SIGNAL(clicked()), ornek, SLOT( show() ) );
'Ders - 3' İle İlgili Diğer Yazılar :
Google
 
En Son Yorumlar (Makaleler)
  • Nesimi ACARCA:@Suat ATAN Galiba et-elipse-integration bileşenini yüklemediniz, en üstte ikinci pa...
  • Suat ATAN:Nesimi Bey Merhaba; QT'yi bir de windowsta deneyeyim dedim. QT mingw'yi de iç...
  • Suat ATAN:Nesimi Bey; C/C++ ile GUI programlamak neredeyse hayat amacım olmuştu. Java,PHP,JSP,...
  • 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 ...
Sponsor Bağlantı