İlk örneği bu link ile yaptım : https://www.oguvenir.com/2014/06/qt-ile-gui-programlama.html
PDF : https://ufukuzun.files.wordpress.com/2014/03/qt-4-ile-cpp-gui-programlama1.pdf
QT Nedir? : http://gamzecukurluoz.blogspot.com/2010/03/qt-nedir.html
Qt, belli bir platforma bağımlı kalmadan uygulamalar yapmak amacıyla oluşturulmuş bir geliştirme ortamı, aynı zamanda da bir geliştirme kütüphanesidir. Yani Qt kullanarak geliştirdiğiniz uygulamaları üzerinde herhangi bir değişiklik yapmadan pek çok masaüstü bilgisayar ve gömülü işletim sistemlerinde kullanabilirsiniz.
Qt genellikle görsel uygulamalar yazacak C++ geliştiricileri tarafından tercih edilmektedir. Ancak Qt yi sadece bir görsel uygulama kütüphanesiymiş gibi düşünmek de yanlış olur. Qt bünyesinde her türlü araç ve kütüphaneyi barındıran çok geniş bir ortamdır. Qt ‘nin içerisinde veritabanı ve network uygulamaları geliştirmek için gerekli birçok fonksiyon bulunmaktadır. Özellikle veritabanı konusunda Qt çok büyük kolaylıklar sağlamaktadır. Qt, Oracle,Ms Sql Server, Sybase Adeptive Server, IBM DB2, PostgreSQL, MySQL, Borland Interbase, SQLite, ve ODBC-uyumlu tüm veritabanlarını desteklemektedir.
Qt C++ geliştiricileri tarafından tercih ediliyor dedik. Peki, Qt ‘yi C++ dışında bir dil ile kullanmak mümkün müdür? Elbette. Qt’ nin C++ dışında Java, Phyton, Ruby, C# gibi dillerle de bağlantıları vardır.
Signals and Slots
Signal ve Slot nesnesi QT içinde nesneler arası iletişim kurmada kullanılır. Signal ve Slot Qt’nin temel fonksiyonlarından birtanesidir ve biraz daha farklısı diğer programlama dillerindede kullanılır. Sinyal ve slot yapısı Qt programlamanın temelini oluşturmaktadır. Çalışma zamanında herhangi bir olayın oluştuğu anda çalışmasını istediğimiz durumlarda bu yapıyı kullanırız. Şu anda biraz karışık gibi gelebilir ama örneklerle açıkladığımızda bu yapının ne kadar pratik ve de mantıklı olduğunu göreceksiniz. Örneğe geçmeden önce sinyal ve slotların özelliklerinden bahsetmek istiyorum.Slotlar tipik bir C++ üye fonksiyonu gibidirler. Virtual, overloaded, public, protected ya da private olabilirler. Diğer üye fonksiyonlar gibi her tür parametre alabilirler. Slotların üye fonksiyonlardan tek farkı sinyale bağlı olmaları ve sinyalin tetiklemesi sonucunda fonksiyonu çalıştırmalarıdır.Bir slota birden fazla sinyal bağlanabileceği gibi bir sinyale de birden fazla slot bağlanabilir.Birden fazla sinyal de birbirine bağlanabilir. Bu durumda birinci sinyal oluştuğunda ikinci sinyal tetiklenecektir.Bir slotun erişim hakları hangi sinyallerin o slota bağlanabileceği ile ölçülmektedir.

Bir nesne çalıştığında programa bir sinyal yayılır. Bu nesneler QTnin önceden tanımlanmış olan nesnelerdir, bizde qtnin sinyal fonksiyonlarına bizim kendi sinyal fonksiyonlarımızıda ekleyebiliriz. Slot ise bir fonksiyondur ve bu fonksiyon QT tarafından çağrılabilir fonksiyonlardandır. Qt nesneleri aynı sinyalleri gibi slotlarıda önceden tanımlanmıştır, aynı sinyaller gibi burdada biz kendimiz slot tanımlayabiliriz. Aslında yazdığımız herbir fonksiyon programdaki sinyal ve slottur da denebilir.
Sinyal ve slot fonksiyonları sınırsız sayıda parametre alabilir. QObject veya QWidget classlarının altındaki bütün nesnelerde signal ve slot bulunmaktadır. Sinyaller nesnesinde herhangi bir değişiklik olduğu zaman yayılırlar. Mesela tıklama işlemi olunca yayılır. Bu diğer bütün nesnelere gider. nesnelerin o sinyali alıp almaması önemli değildir. Eğer o nesnenin gelen sinyalle bir işi varsa o işi yapar yoksa bir işlem yapılmaz.
Slotlar alınan sinyallere göre çalışır, ve bunlar aynı zamanda birer fonksiyondur. Bu sinyal ve slot bağlantıları qt tarafından bağlanılmadığında çalışmazlar yani bağlantı olmalıdır.
