Qt C++'ta sinyal-slot mekanizması (Designer yardımıyla)

Herkese selamlar!

Bu blogumda sizlere Qt C++'ta sinyal-slot mekanizmasını anlatacağım. Öncesinde çok zorlanmıştım ben de, açtığım konularda belki bulabilirsiniz. :D

Sinyal ve slot mekanizması, yaptığımız Qt tabanlı uygulamanın fonksiyonel olmasını sağlar desem herhalde çok yanlış olmaz. Butonların tıklanabilir olması bunun en büyük örneğidir.

Örneğin, bir uygulama yapalım. Kullanıcı butona tıklayınca ekranda mesaj versin.


qtnonslot.png


Şu an Qt Creator'ün Designer kısmındayız. Uygulama görünüşümüzü böyle yapacağız.


Az önce koyduğumuz butona sağ tıklıyorum. Ve "Go to slot" diyorum.

Karşıma şöyle bir pencere geliyor, ve buradan bu butonun (QAbstractButton) tüm olaylarını görebiliyorum. Tıklanınca ne yapılsın, basılınca ne yapılsın vs. kontrol edebiliyoruz.

slotsofabutton.png


"clicked()" olayına çift tıklayınca şöyle bir kod parçası beliriyor:

eventbasedcpp.png


İşte, bu kod parçası, pushButton nesnesine tıklanınca ne yapılacağını içine yazacağımız parça. Ben buraya mesaj vermesi için gereken kodu yazayım.

MainWindow.cpp dosyasına "QMessageBox" kütüphanesini include etmeyi unutmayın.

qmessageandbutton.png


Yeri gelmişken kısaca QMessageBox'ı da açıklayayım. Mesaj vermek için kullnılır, tahmin ettiğiniz gibi. İlk parametre olarak parent sınıfın pointer'ını alır, ben de "this" yaparak parent sınıfın ana pencere olduğunu belirttim.

İkinci parametre, mesaj kutumuzun başlığını alırken, üçüncü parametre ise mesajın içeriğidir.

Daha fazla parametresi de var. Mesaj kutumuzun butonları vs.

Daha fazla bilgi için buraya tıklayabilirsiniz.




Hadi, programı deneyelim.

1.png


2.png


Gördüğünüz gibi, tıklayınca çalıştı.


Okuduğunuz için teşekkürler!
  • Beğen
İfadeler: Kernelginar

Yorumlar

Gösterilecek yorum bulunamadı.

Blog girdisi detayları

Ekleyen
TerabyteForever
Okuma süresi
1 dakika okuma
Görüntüleme
455
Son güncelleme

Yazılım kategorisindeki diğer girdiler

TerabyteForever adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı