Endorfin35+
Kayıtsız Üye
- Katılım
- 1 Mayıs 2020
- Mesajlar
- 4,579
Bu başlık altında Qt ile haşır neşir olarak bir yandan kendime not tutarken bir yandan da takip etmek isteyen arkadaşlara bilgiler aktaracağım. Daha önce python ile qt kullanımı konusunda bir miktar tecrübe edindim aslında ancak ulaşmak istediğim noktaya varamadım. Başvurduğum kaynaklarda da sürekli c++ ile örnekler karşıma çıkınca pythonu şimdilik bir kenara koyup c++ ile yola devam etme kararı aldım.
Sizde benim gibi anca arduino kodlayacak kadar c biliyor iseniz öncelikle c konusunda biraz yol alınmalı diye düşünüyorum. Qt de herşey sınıflardan oluşuyor ve nesne yönelimli programlamaya bir tık hakim olmak gerekli...
Bu başlık altında C/C++ hakkında aldığım notları bulabilirsiniz.
	
	
		
			
			
				
					
						
							 mekatronik.org
						
					
					mekatronik.org
				
			
		
	
Şu Başlık altında da Qt Creator (IDE) hakkında bazı paylaşımlar bulunmakta,
	
	
		
			
			
				
					
						
							 mekatronik.org
						
					
					mekatronik.org
				
			
		
	
Haydi başlayalım.
Yeni bir Qt Console Application projesi oluşturduğumuzda main dosyamıza şu kodlar (açıklamaları ben ekledim) otomatik olarak geliyor;
	
	
	
		
Bu aşamada a nesnesi ile bir işimiz yok. main parametreleri ile de işimiz yok. Gelin c++ ın iostream sınıfı ile bir çıktı almak için kodumuzu şöyle düzenleyelim;
	
	
	
		
	
	
	
		
Qt, C++ sınıflarına alternatif olarak Q harfi ile başlayan kendi sınıflarına sahiptir ve Qt nin kendi sınıflarının kullanılması tavsiye edilmektedir. Tabi bu durumdan c++ sınıfları kullanılamaz gibi bir anlam çıkarılmamalıdır.
Qt Sınıfları : https://doc-snapshots.qt.io/qt6-dev/qtcore-module.html
Qt Sınıflarını kullanarak Merhaba örneğimizi tekrar yazalım;
	
	
	
		
	
	
	
		
				
			Sizde benim gibi anca arduino kodlayacak kadar c biliyor iseniz öncelikle c konusunda biraz yol alınmalı diye düşünüyorum. Qt de herşey sınıflardan oluşuyor ve nesne yönelimli programlamaya bir tık hakim olmak gerekli...
Bu başlık altında C/C++ hakkında aldığım notları bulabilirsiniz.
C de Veri Tipleri
Bu başlık altında C dilince dizi tanımlama, pointerlar ve ilişkileri hakkında öğrendiğim bilgileri toparlayarak paylaşacağım. Hatalı bilgiler görürseniz bildiriniz.    Kaynak : https://www.geeksforgeeks.org/     Öncelikle yukarıdaki tabloyu paylşamak istiyorum. Tablo C dilinde değer (veri)...
				 mekatronik.org
						
					
					mekatronik.org
				Şu Başlık altında da Qt Creator (IDE) hakkında bazı paylaşımlar bulunmakta,
Qt ile çalışmak için hazırlıklar ve IDE ipuçları...
Bu başlık altında Qt nin IDE sinin kullanımı hakkında notlar paylaşmayı hedefliyorum...   Daha önce Qt kurulumundan bahsetmişim. şurada, https://mekatronik.org/forum/threads/qt-kurulumu.1696/  Eğer daha önceden bilgisayarınızda Qt kurulu ise hangi sürümün ve hangi paketlerin yüklü olduğunu...
				 mekatronik.org
						
					
					mekatronik.org
				Haydi başlayalım.
Yeni bir Qt Console Application projesi oluşturduğumuzda main dosyamıza şu kodlar (açıklamaları ben ekledim) otomatik olarak geliyor;
		Kod:
	
	#include <QCoreApplication> // QCoreApp.. sınıfını dahil et.
int main(int argc, char *argv[])   // argc,argv main fonksiyonun parametre alırsa diye yazılmış.
{
    QCoreApplication a(argc, argv);   // QCoreApp.. sınıfından bir nesne "a" üret. main fonk. aldığı parametre var ise nesnenin yapıcısına aktar.
   
   
    return a.exec();   // program sonu. a nesnesinin exec fonksiyonunun dönüş değerinin döndür...
}Bu aşamada a nesnesi ile bir işimiz yok. main parametreleri ile de işimiz yok. Gelin c++ ın iostream sınıfı ile bir çıktı almak için kodumuzu şöyle düzenleyelim;
		Kod:
	
	#include <QCoreApplication>
#include <iostream>
int main()
{
 
    std::cout << "Merhaba Qt" << std::endl;
    return 0;
}
		Kod:
	
	Merhaba QtQt, C++ sınıflarına alternatif olarak Q harfi ile başlayan kendi sınıflarına sahiptir ve Qt nin kendi sınıflarının kullanılması tavsiye edilmektedir. Tabi bu durumdan c++ sınıfları kullanılamaz gibi bir anlam çıkarılmamalıdır.
Qt Sınıfları : https://doc-snapshots.qt.io/qt6-dev/qtcore-module.html
Qt Sınıflarını kullanarak Merhaba örneğimizi tekrar yazalım;
		Kod:
	
	#include <QCoreApplication>
int main()
{
    QString Cumle ="Merhaba QT";  // c++ string alternatifi...
    qDebug() << "Mekatronik.Org : " << Cumle;  // c++ cout alternatifi...
    return 0;
}
		Kod:
	
	Mekatronik.Org :  "Merhaba QT" 
	 
 
		 
						
					 
			 Visual Studio da geliştirme yaparken form üzerine bir kontrol eklersiniz, üzerine çift tıklayıp kod penceresine geçer, doğrudan ilgili event i seçip kodlama yaparsınız. Olay bu kadar sadedir. Qt de ise bu çalışma senaryosu daha farklı işliyor. Bir pencere üzerindeki kontrollerin (bu kontrollere Qt de widget diyoruz) fonksiyonlarını yazmak veya tanımlamak için sinyal slot bağlantısını kullanıyoruz. Sinyal slot kavramı sadece görsel arayüz ile ilgili olmamasına karşın arayüz üzerinden örneklendirmek istiyorum.
 Visual Studio da geliştirme yaparken form üzerine bir kontrol eklersiniz, üzerine çift tıklayıp kod penceresine geçer, doğrudan ilgili event i seçip kodlama yaparsınız. Olay bu kadar sadedir. Qt de ise bu çalışma senaryosu daha farklı işliyor. Bir pencere üzerindeki kontrollerin (bu kontrollere Qt de widget diyoruz) fonksiyonlarını yazmak veya tanımlamak için sinyal slot bağlantısını kullanıyoruz. Sinyal slot kavramı sadece görsel arayüz ile ilgili olmamasına karşın arayüz üzerinden örneklendirmek istiyorum. 
					
				 
 
		 
 
		 
 
		
 
 
		 
 
		 
 
		