27/08/2015 12

QT GUI C++ Signal Slot Kavramı Part 2 (Örnekler)

Bu yazıda signal ve slot ile ilgili örnekler vereceğim ve nasıl kullanıldığına daha yakından bakacağız. Bu sayede signal ve slot kavramını iyice anladıktan sonra bundan sonraki konularda signal ve slot kavramını daha sık kullanacağız.

Bu yazı QT GUI C++ Signal Slot Kavramı Part - 1 adlı yazının devamı durumundadır. Ordaki meseleyi anladıysanız burdada örneklerden konuyu iyice oturtacağız diye ümit ediyorum.

Şimdi örneklere geçelim

Burda timer nesnesi header de tanımlanan bir QTimer nesnesidir timer nesnesi her timeout olduğunda form üzerindeki fonksiyon slotunu çalıştırsın diyoruz ve timer nesnesini 5 saniyede bir çalıştırıyoruz. Bu fonksiyon aslında QT ile programda idle kodu olarakta bilinir. yani her 5 saniyede bir kod blogu çalışacaktır


  timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(fonksiyon()));
    timer->start(5000);
burda ise action isimli bir QAction nesnesi oluşturuldu ve action triggered olduğunda form üzerindeki fonk fonksiyonu çalışacaktır

action = new QAction("durum", this);
    connect(action,SIGNAL(triggered()),this, SLOT(fonk()));
    menu->addAction(action);
Bunlar bizim form üzerinde slot olarak tanımladığımız fonksiyonlar bu fonksiyonları programdaki signal nesnelerimiz slot olarak çağıracaktır

void MainWindow::fonksiyon()
{
	// fonksiyon içerisindeki kodlar
}


void MainWindow::fonk()
{
	//fonksiyon içerisindeki kodlar
}
Buda bizim header dosyamızın içerisindeki kodlar  

#include headers.h
#include header.h
//header dosyalarımız

private:
  QTimer *timer;
  QAction *action;
//nesnelerimiz



private slots:
    void showWindow();
    void slider_change();

//tanımlamış oldugumuz slotlarımız

Umarım Örneklerimizde Signal Slot olayını anlatabilmişimdir...

Burak hamdi Tufan

İyi çalışmalar


Tags

Share this Post



Post a Comment

Success! Your comment sent to post. It will be showed after confirmation.
Error! There was an error sending your comment.

Comments

    There is no comment. Be the owner of first comment...