Basic Qt Programming Tutorial/tr: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
'''Türkçe''' [[Basic Qt Programming Tutorial|English]] [[Basic Qt Programming Tutorial SimplifiedChinese|简体中文]] [[Basic Qt Programming Tutorial Persian|فارسی]] [[Basic Qt Programming Tutorial Spanish|Español]]
[[Category:NasilYapilir]]<br />[[Category:Qt_Ile_Gelistirme::Genel]]<br />[[Category:Ogreticiler]]


=Giriş=
[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]


Bu ders Qt-Creator tümleşik geliştirme ortamı (<span class="caps">IDE</span>) kullanarak pragramlama için ilk adımları ayrıntılı olarak açıklamaktadır.
'''Türkçe''' [[Basic_Qt_Programming_Tutorial|English]] [[Basic_Qt_Programming_Tutorial_SimplifiedChinese|简体中文]] [[Basic_Qt_Programming_Tutorial_Persian|فارسی]] [[Basic_Qt_Programming_Tutorial_Spanish|Español]]


'''Not:''' Bu ders sadece Qt’ye yeni başlayanlar için bir giriş niteliğindedir.
= Giriş =


Ot ile grafik kullanıcı arayüzü (<span class="caps">GUI</span>) hazırlamak oldukça kolaydır. Aynı zamanda hazırdadığınız arayüzler birçok platformda sorunsuz çalışmaktadır. Programlamaya başlamadan önce aşağıdakilerin sisteminizde kurulu olması gerekmektedir.
Bu ders Qt-Creator tümleşik geliştirme ortamı (IDE (Integrated Development Environment)) kullanarak pragramlama için ilk adımları ayrıntılı olarak açıklamaktadır.
 
'''Not:''' Bu ders sadece Qt'ye yeni başlayanlar için bir giriş niteliğindedir.
 
Ot ile grafik kullanıcı arayüzü (GUI (Graphical User Interface)) hazırlamak oldukça kolaydır. Aynı zamanda hazırdadığınız arayüzler birçok platformda sorunsuz çalışmaktadır. Programlamaya başlamadan önce aşağıdakilerin sisteminizde kurulu olması gerekmektedir.


* Qt Creator (Yaygın tüm platformlarda kullanabilirsiniz. Windows, Linux, Mac os)
* Qt Creator (Yaygın tüm platformlarda kullanabilirsiniz. Windows, Linux, Mac os)
* Qt Libraries 4.8.3 for windows (Windows için ikili paketi)
* Qt Libraries 4.8.3 for windows (Windows için ikili paketi)


Kurulum Dosyalarını Buradan indirebilirsiniz. —&gt; http://qt.io/download<br /> Kurulumun nasıl yapıldığıyla ilgili [[Qt-Calisma-Ortamini-Hazirlama|bu sayfadan]] ''[qt.io]'' bilgi alabilirsiniz.
Kurulum Dosyalarını Buradan indirebilirsiniz. —&amp;gt; http://qt.io/download<br />Kurulumun nasıl yapıldığıyla ilgili &quot;bu sayfadan&amp;quot;:http://wiki.qt.io/Qt-Calisma-Ortamini-Hazirlama bilgi alabilirsiniz.


'''Not:''' Diğer işletim sistemleri üzerinde kullanmak isteyen arkadaşlarda aynı şekilde ilgili paketleri indirdikten sonra kullanmaya başlayabilir. Aynı zamanda Windows işletim sistemi üzerinde Visual Studio kullanılarakta geliştirme yapılabilir. Visual Studio kullanacak arkadaşlar Qt Libraries 4.8.3 veya başka bir sürümünü indirdikten sonra Qt Visual Studio Add-in eklentisini kurarak Visual Studio üzerinde geliştirme yapabilir.
'''Not:''' Diğer işletim sistemleri üzerinde kullanmak isteyen arkadaşlarda aynı şekilde ilgili paketleri indirdikten sonra kullanmaya başlayabilir. Aynı zamanda Windows işletim sistemi üzerinde Visual Studio kullanılarakta geliştirme yapılabilir. Visual Studio kullanacak arkadaşlar Qt Libraries 4.8.3 veya başka bir sürümünü indirdikten sonra Qt Visual Studio Add-in eklentisini kurarak Visual Studio üzerinde geliştirme yapabilir.


==İlk Adım : Yeni Bir Proje Oluşturma==
== İlk Adım : Yeni Bir Proje Oluşturma ==


# Qt Creator Başlatın<br />[[Image:gdc7z.jpg|qt]]
# Qt Creator Başlatın<br />[[Image:http://b1211.hizliresim.com/13/x/gdc7z.jpg|qt]]
# Sırasıyla '''File''' '''New File or Project''' '''Applications''' '''Qt Gui Application''' seçtikten sonra '''Choose''' butonuna tıklayınız.<br />[[Image:gdcb1.jpg|qt]]
# Sırasıyla '''File''' - '''New File or Project''' - '''Applications''' - '''Qt Gui Application''' seçtikten sonra '''Choose''' butonuna tıklayınız.<br />[[Image:http://b1211.hizliresim.com/13/x/gdcb1.jpg|qt]]
# Açılan ekranda '''Name:''' karşısına proje için bir isim verdikte sonra '''Create in:''' karşısına projenin dizinini seçerek '''Next'''’e tıklayınız.<br />[[Image:image.jpg|qt]]
# Açılan ekranda '''Name:''' karşısına proje için bir isim verdikte sonra '''Create in:''' karşısına projenin dizinini seçerek '''Next''''e tıklayınız.<br />[[Image:http://s10.postimage.org/fzzdp5mih/image.jpg|qt]]
# Qt ile hangi platformlara derleme yapılacağını soran bu ekranda '''Desktop''' seçerek masaüstüne derleme yapacağımızı bildirerek '''Next''' butonuna tıklıyoruz.<br />[[Image:image.jpg|qt]]
# Qt ile hangi platformlara derleme yapılacağını soran bu ekranda '''Desktop''' seçerek masaüstüne derleme yapacağımızı bildirerek '''Next''' butonuna tıklıyoruz.<br />[[Image:http://s9.postimage.org/hl0esi1e7/image.jpg|qt]]
# Açılan ekrandan '''Base Class''' yazan kısımdan hangi sınıftan türetme yapacağımızı şeçiyoruz. QMainWindow seçerek uygulamamız için bir anapencere oluşturmasını bununla birlikte bir başlık dosyası ve kaynak dosyası ile birlikte tasarım yapacağımız .ui uzantılı dosyayı oluşturmasını söylüyoruz. '''Next''' Butonuna tıklıyoruz.<br />[[Image:image.jpg|qt]]
# Açılan ekrandan '''Base Class''' yazan kısımdan hangi sınıftan türetme yapacağımızı şeçiyoruz. QMainWindow seçerek uygulamamız için bir anapencere oluşturmasını bununla birlikte bir başlık dosyası ve kaynak dosyası ile birlikte tasarım yapacağımız .ui uzantılı dosyayı oluşturmasını söylüyoruz. '''Next''' Butonuna tıklıyoruz.<br />[[Image:http://s9.postimage.org/i23zxwiof/image.jpg|qt]]
# Bu son dialog penceresinde ise eğer bir version kontrol sistemi kullanıyorsak '''Add toversion control:''' kısmından bunu seçebiliriz. Şu an none seçili kalacaktır. Son olarak '''Finish''' butonuna tıklayarak projemi oluşturuyoruz.<br />[[Image:gdc42.jpg|qt]]
# Bu son dialog penceresinde ise eğer bir version kontrol sistemi kullanıyorsak '''Add toversion control:''' kısmından bunu seçebiliriz. Şu an none seçili kalacaktır. Son olarak '''Finish''' butonuna tıklayarak projemi oluşturuyoruz.<br />[[Image:http://c1211.hizliresim.com/13/x/gdc42.jpg|qt]]


Proje açıldıktan sonra 4 adet dosya oluşacaktır. Bunlar:
Proje açıldıktan sonra 4 adet dosya oluşacaktır. Bunlar:
Line 32: Line 36:
* mainwindow.ui
* mainwindow.ui


==İkinci Adım : Proje Dosyalarına Gözatma==
== İkinci Adım : Proje Dosyalarına Gözatma ==


* main.cpp<br /> Yukarıda bulunan main fonksiyonu programın başlangıç fonksiyonudur. Main fonksiyonu içerisinde bir adet '''QApplication''' nesnesi oluşturuyoruz, Qt ile uygulamamızı çalıştırmak için tüm programlarda bu nesne oluşturulmak zorundadır, bu nesne programımız için arkaplanda bir döngü oluşturarak programımızın sürekli ekranda kalmasını sağlıyor. Daha sonra yaptığımız arayüzden bir nesne oluşturuyoruzki bu nesne bizim ana ekranımız yani '''QMainWindow''' sınıfından türetme yaptığımız sınıfın bir örneğini oluşturuyoruz. '''w.show();''' fonksiyonunu çalıştırarak ekranda gözükmesini sağlıyoruz. '''return a.exec();''' fonksiyonu ile uygulamayı '''QApplication'''’a devrediyoruz.
* main.cpp<br /><code><br />#include &quot;mainwindow.h&amp;quot;<br />#include &lt;QApplication&amp;gt;


* mainwindow.h<br /> Burası ana penceremizin başlık dosyasıdır. '''Q_OBJECT''' makrosu Qt içerisinde bulunan sinyal slot mekanızmasını kullanmak için eklenen bir makrodur. Bu konu ileride anlatılacaktır. '''explicit MainWindow(QWidget *parent = 0);''' burası sınıfın yapıcı fonksiyonu, '''QWidget *parent = 0''' diyerek sınıfımızın başka bir sınıfa veyahut widgette diyebiliriz ait olmadığını belirtir, ileride görecemiz gibi bir nesne başka bir nesneye ait olabilmektedir. '''~MainWindow();''' burası yıkıcı fonksiyonumuz. private kısımda bulunan '''Ui::MainWindow *ui;''' designer ekranında oluşturduğumuz arayüze bir gösterici tanımlamaktadır.
int main(int argc, char *argv[])<br />{<br /> QApplication a(argc, argv);<br /> MainWindow w;<br /> w.show();


* mainwindow.cpp<br /> Burası projemizin kaynak dosyası, başlık dosyamızda tanımlanan fonksiyonların içerikleridir. '''ui-&gt;setupUi(this);''' fonksiyonu '''#include “ui_mainwindow.h”''' olarak eklediğimiz dosya içerinde Qt Creator tarafından oluşturulan otomatik bir fonksiyondur. Qt ile hazırladığımız arayüzler '''.ui''' dosyalarında '''xml''' yapısı kullanılarak tutulur. Projeji derlediğimizde '''<span class="caps">MOC</span>''' tarafından bunlar kaynak koda çevrilirler işte bu kaynak kod '''ui_mainwindow.h''' dosyasının ta kendisidir. Bunun içeriğini görebilmek için en az bir kez derleme yapmalıyızki '''<span class="caps">MOC</span>''' tarafından kodları oluşturulsun.
return a.exec&amp;amp;#40;&amp;#41;;<br />}<br /></code><br />Yukarıda bulunan main fonksiyonu programın başlangıç fonksiyonudur. Main fonksiyonu içerisinde bir adet '''QApplication''' nesnesi oluşturuyoruz, Qt ile uygulamamızı çalıştırmak için tüm programlarda bu nesne oluşturulmak zorundadır, bu nesne programımız için arkaplanda bir döngü oluşturarak programımızın sürekli ekranda kalmasını sağlıyor. Daha sonra yaptığımız arayüzden bir nesne oluşturuyoruzki bu nesne bizim ana ekranımız yani '''QMainWindow''' sınıfından türetme yaptığımız sınıfın bir örneğini oluşturuyoruz. '''w.show();''' fonksiyonunu çalıştırarak ekranda gözükmesini sağlıyoruz. '''return a.exec&amp;amp;#40;&amp;#41;;''' fonksiyonu ile uygulamayı '''QApplication''''a devrediyoruz.
 
* mainwindow.h<br /><code><br />#ifndef MAINWINDOW_H<br />#define MAINWINDOW_H
 
#include &lt;QMainWindow&amp;gt;
 
namespace Ui {<br />class MainWindow;<br />}
 
class MainWindow : public QMainWindow<br />{<br /> Q_OBJECT
 
public:<br /> explicit MainWindow(QWidget *parent = 0);<br /> ~MainWindow();
 
private:<br /> Ui::MainWindow *ui;<br />};
 
#endif // MAINWINDOW_H<br /></code><br />Burası ana penceremizin başlık dosyasıdır. '''Q_OBJECT''' makrosu Qt içerisinde bulunan sinyal slot mekanızmasını kullanmak için eklenen bir makrodur. Bu konu ileride anlatılacaktır. *explicit MainWindow(QWidget '''parent = 0);''' burası sınıfın yapıcı fonksiyonu, *QWidget '''parent = 0''' diyerek sınıfımızın başka bir sınıfa veyahut widgette diyebiliriz ait olmadığını belirtir, ileride görecemiz gibi bir nesne başka bir nesneye ait olabilmektedir. '''~MainWindow();''' burası yıkıcı fonksiyonumuz. private kısımda bulunan *Ui::MainWindow '''ui;''' designer ekranında oluşturduğumuz arayüze bir gösterici tanımlamaktadır.
 
* mainwindow.cpp<br /><code><br />#include &quot;mainwindow.h&amp;quot;<br />#include &quot;ui_mainwindow.h&amp;quot;
 
MainWindow::MainWindow(QWidget *parent) :<br /> QMainWindow(parent),<br /> ui(new Ui::MainWindow)<br />{<br /> ui-&gt;setupUi(this);<br />}
 
MainWindow::~MainWindow()<br />{<br /> delete ui;<br />}<br /></code><br />Burası projemizin kaynak dosyası, başlık dosyamızda tanımlanan fonksiyonların içerikleridir. '''ui-&gt;setupUi(this);''' fonksiyonu '''#include &quot;ui_mainwindow.h&amp;quot;''' olarak eklediğimiz dosya içerinde Qt Creator tarafından oluşturulan otomatik bir fonksiyondur. Qt ile hazırladığımız arayüzler '''.ui''' dosyalarında '''xml''' yapısı kullanılarak tutulur. Projeji derlediğimizde '''MOC (Meta Object Compiler)''' tarafından bunlar kaynak koda çevrilirler işte bu kaynak kod '''ui_mainwindow.h''' dosyasının ta kendisidir. Bunun içeriğini görebilmek için en az bir kez derleme yapmalıyızki '''MOC''' tarafından kodları oluşturulsun.


* mainwindow.ui
* mainwindow.ui
Line 44: Line 68:
Bu dosyanın içeriği aşağıdaki gibi bir xml yapı içerisindedir. Bunlarda genellikle üzerinde değişiklik yapılmaz bu dosya sadece ekran üzerinde bulunan nesnelerin konum bilgileri vs. gösterir. Programın çalışma anına ilişkin bir dosya değildir. Derleyicinin gördüğü asıl dosya üretilen '''ui_mainwindow.h''' dosyasının içeriğidir.
Bu dosyanın içeriği aşağıdaki gibi bir xml yapı içerisindedir. Bunlarda genellikle üzerinde değişiklik yapılmaz bu dosya sadece ekran üzerinde bulunan nesnelerin konum bilgileri vs. gösterir. Programın çalışma anına ilişkin bir dosya değildir. Derleyicinin gördüğü asıl dosya üretilen '''ui_mainwindow.h''' dosyasının içeriğidir.


==Üçüncü Adım : Proje Dosyalarını Düzenleme==
<code><br />&amp;lt;?xml version=&quot;1.0&amp;quot; encoding=&quot;UTF-8&amp;quot;?&amp;gt;<br />&lt;ui version=&quot;4.0&amp;quot;&gt;<br /> &lt;class&amp;gt;MainWindow&amp;lt;/class&amp;gt;<br /> &lt;widget class=&quot;QMainWindow&amp;quot; name=&quot;MainWindow&amp;quot;&gt;<br /> &lt;property name=&quot;geometry&amp;quot;&gt;<br /> &lt;rect&amp;gt;<br /> &lt;x&amp;gt;0&amp;lt;/x&amp;gt;<br /> &lt;y&amp;gt;0&amp;lt;/y&amp;gt;<br /> &lt;width&amp;gt;400&amp;lt;/width&amp;gt;<br /> &lt;height&amp;gt;300&amp;lt;/height&amp;gt;<br /> &lt;/rect&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;property name=&quot;windowTitle&amp;quot;&gt;<br /> &lt;string&amp;gt;MainWindow&amp;lt;/string&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;widget class=&quot;QWidget&amp;quot; name=&quot;centralWidget&amp;quot;/&amp;gt;<br /> &lt;widget class=&quot;QMenuBar&amp;quot; name=&quot;menuBar&amp;quot;&gt;<br /> &lt;property name=&quot;geometry&amp;quot;&gt;<br /> &lt;rect&amp;gt;<br /> &lt;x&amp;gt;0&amp;lt;/x&amp;gt;<br /> &lt;y&amp;gt;0&amp;lt;/y&amp;gt;<br /> &lt;width&amp;gt;400&amp;lt;/width&amp;gt;<br /> &lt;height&amp;gt;21&amp;lt;/height&amp;gt;<br /> &lt;/rect&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;widget class=&quot;QToolBar&amp;quot; name=&quot;mainToolBar&amp;quot;&gt;<br /> &lt;attribute name=&quot;toolBarArea&amp;quot;&gt;<br /> &lt;enum&amp;gt;TopToolBarArea&amp;lt;/enum&amp;gt;<br /> &lt;/attribute&amp;gt;<br /> &lt;attribute name=&quot;toolBarBreak&amp;quot;&gt;<br /> &lt;bool&amp;gt;false&amp;lt;/bool&amp;gt;<br /> &lt;/attribute&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;widget class=&quot;QStatusBar&amp;quot; name=&quot;statusBar&amp;quot;/&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;layoutdefault spacing=&quot;6&amp;quot; margin=&quot;11&amp;quot;/&amp;gt;<br /> &lt;resources/&amp;gt;<br /> &lt;connections/&amp;gt;<br />&lt;/ui&amp;gt;
 
</code>
 
== Üçüncü Adım : Proje Dosyalarını Düzenleme ==


Proje üzerine bir adet yazı gösteren bileşen ve bir adet tıklama ögesi yani buton eklenmek istenmektedir. Bu 2 bileşene widget denilmektektedir. Qt üzerinde kullanacağınız tüm arayüz nesneleri widget olarak adlandırılır. Birçok widget hazır olarak kurulu gelmiş olsada kendinizde bir widget ekleyebilirsiniz, lakin bunlar biraz ileri seviye konular olduğu için bu kısımda anlatılmayacaktır.
Proje üzerine bir adet yazı gösteren bileşen ve bir adet tıklama ögesi yani buton eklenmek istenmektedir. Bu 2 bileşene widget denilmektektedir. Qt üzerinde kullanacağınız tüm arayüz nesneleri widget olarak adlandırılır. Birçok widget hazır olarak kurulu gelmiş olsada kendinizde bir widget ekleyebilirsiniz, lakin bunlar biraz ileri seviye konular olduğu için bu kısımda anlatılmayacaktır.
Line 50: Line 78:
mainwindow.ui dosyasına çift tıkladığınızda bir designer penceri açılacak, orta kısımda üzerinde çalıştığımız form nesnesi bulunmaktadır.(MainWindow Arayüzü). sol tarafta ise form üzerinde kullanacağımız widgetler bulunur. Sol taraftan bir adet QLabel ve QPushButton widgetini sürükleyerek form üzerine bırakınız.
mainwindow.ui dosyasına çift tıkladığınızda bir designer penceri açılacak, orta kısımda üzerinde çalıştığımız form nesnesi bulunmaktadır.(MainWindow Arayüzü). sol tarafta ise form üzerinde kullanacağımız widgetler bulunur. Sol taraftan bir adet QLabel ve QPushButton widgetini sürükleyerek form üzerine bırakınız.


==Dördüncü Adım : Proje Derleme ve Çalıştırma==
== Dördüncü Adım : Proje Derleme ve Çalıştırma ==
 
Projeyi kaydettikten sonra '''Build''' menüsünden '''Build Project''' seçerek veya '''Ctrl + B''' tuş kombinasyonunu kullanarak derleyebilirsiniz.<br /> Veya Derlemek ve sonrasında çalıştırmak için '''Build''' menüsünden '''Run''' seçerek veya '''Ctrl + R''' tuş kombinasyonunu kullanarak hem derleyip hem çalıştırabilirsiniz.
 
'''Not:''' Aynı zamanda komut satırı kullanılarakta ilgili derleyiciye bağlı olarak derleme ve bağlama işlemini gerçekleştirebilirsiniz.
 
===Categories:===


* [[:Category:NasilYapilir|NasilYapilir]]
Projeyi kaydettikten sonra '''Build''' menüsünden '''Build Project''' seçerek veya '''Ctrl + B''' tuş kombinasyonunu kullanarak derleyebilirsiniz.<br />Veya Derlemek ve sonrasında çalıştırmak için '''Build''' menüsünden '''Run''' seçerek veya '''Ctrl + R''' tuş kombinasyonunu kullanarak hem derleyip hem çalıştırabilirsiniz.
* [[:Category:Ogreticiler|Ogreticiler]]
* [[:Category:Qt Ile Gelistirme|Qt_Ile_Gelistirme]]
** [[:Category:Qt Ile Gelistirme::Genel|Genel]]

Revision as of 14:47, 23 February 2015



[toc align_right="yes&quot; depth="2&quot;]

Türkçe English 简体中文 فارسی Español

Giriş

Bu ders Qt-Creator tümleşik geliştirme ortamı (IDE (Integrated Development Environment)) kullanarak pragramlama için ilk adımları ayrıntılı olarak açıklamaktadır.

Not: Bu ders sadece Qt'ye yeni başlayanlar için bir giriş niteliğindedir.

Ot ile grafik kullanıcı arayüzü (GUI (Graphical User Interface)) hazırlamak oldukça kolaydır. Aynı zamanda hazırdadığınız arayüzler birçok platformda sorunsuz çalışmaktadır. Programlamaya başlamadan önce aşağıdakilerin sisteminizde kurulu olması gerekmektedir.

  • Qt Creator (Yaygın tüm platformlarda kullanabilirsiniz. Windows, Linux, Mac os)
  • Qt Libraries 4.8.3 for windows (Windows için ikili paketi)

Kurulum Dosyalarını Buradan indirebilirsiniz. —&gt; http://qt.io/download
Kurulumun nasıl yapıldığıyla ilgili "bu sayfadan&quot;:http://wiki.qt.io/Qt-Calisma-Ortamini-Hazirlama bilgi alabilirsiniz.

Not: Diğer işletim sistemleri üzerinde kullanmak isteyen arkadaşlarda aynı şekilde ilgili paketleri indirdikten sonra kullanmaya başlayabilir. Aynı zamanda Windows işletim sistemi üzerinde Visual Studio kullanılarakta geliştirme yapılabilir. Visual Studio kullanacak arkadaşlar Qt Libraries 4.8.3 veya başka bir sürümünü indirdikten sonra Qt Visual Studio Add-in eklentisini kurarak Visual Studio üzerinde geliştirme yapabilir.

İlk Adım : Yeni Bir Proje Oluşturma

  1. Qt Creator Başlatın
    qt
  2. Sırasıyla File - New File or Project - Applications - Qt Gui Application seçtikten sonra Choose butonuna tıklayınız.
    qt
  3. Açılan ekranda Name: karşısına proje için bir isim verdikte sonra Create in: karşısına projenin dizinini seçerek Next'e tıklayınız.
    qt
  4. Qt ile hangi platformlara derleme yapılacağını soran bu ekranda Desktop seçerek masaüstüne derleme yapacağımızı bildirerek Next butonuna tıklıyoruz.
    qt
  5. Açılan ekrandan Base Class yazan kısımdan hangi sınıftan türetme yapacağımızı şeçiyoruz. QMainWindow seçerek uygulamamız için bir anapencere oluşturmasını bununla birlikte bir başlık dosyası ve kaynak dosyası ile birlikte tasarım yapacağımız .ui uzantılı dosyayı oluşturmasını söylüyoruz. Next Butonuna tıklıyoruz.
    qt
  6. Bu son dialog penceresinde ise eğer bir version kontrol sistemi kullanıyorsak Add toversion control: kısmından bunu seçebiliriz. Şu an none seçili kalacaktır. Son olarak Finish butonuna tıklayarak projemi oluşturuyoruz.
    qt

Proje açıldıktan sonra 4 adet dosya oluşacaktır. Bunlar:

  • main.cpp
  • mainwindow.h
  • mainwindow.cpp
  • mainwindow.ui

İkinci Adım : Proje Dosyalarına Gözatma

  • main.cpp
    <br />#include &quot;mainwindow.h&amp;quot;<br />#include &lt;QApplication&amp;gt;
    
    int main(int argc, char *argv[])<br />{<br /> QApplication a(argc, argv);<br /> MainWindow w;<br /> w.show();
    
    return a.exec&amp;amp;#40;&amp;#41;;<br />}<br />
    

    Yukarıda bulunan main fonksiyonu programın başlangıç fonksiyonudur. Main fonksiyonu içerisinde bir adet QApplication nesnesi oluşturuyoruz, Qt ile uygulamamızı çalıştırmak için tüm programlarda bu nesne oluşturulmak zorundadır, bu nesne programımız için arkaplanda bir döngü oluşturarak programımızın sürekli ekranda kalmasını sağlıyor. Daha sonra yaptığımız arayüzden bir nesne oluşturuyoruzki bu nesne bizim ana ekranımız yani QMainWindow sınıfından türetme yaptığımız sınıfın bir örneğini oluşturuyoruz. w.show(); fonksiyonunu çalıştırarak ekranda gözükmesini sağlıyoruz. return a.exec&amp;#40;&#41;; fonksiyonu ile uygulamayı QApplication'a devrediyoruz.
  • mainwindow.h
    <br />#ifndef MAINWINDOW_H<br />#define MAINWINDOW_H
    
    #include &lt;QMainWindow&amp;gt;
    
    namespace Ui {<br />class MainWindow;<br />}
    
    class MainWindow : public QMainWindow<br />{<br /> Q_OBJECT
    
    public:<br /> explicit MainWindow(QWidget *parent = 0);<br /> ~MainWindow();
    
    private:<br /> Ui::MainWindow *ui;<br />};
    
    #endif // MAINWINDOW_H<br />
    

    Burası ana penceremizin başlık dosyasıdır. Q_OBJECT makrosu Qt içerisinde bulunan sinyal slot mekanızmasını kullanmak için eklenen bir makrodur. Bu konu ileride anlatılacaktır. *explicit MainWindow(QWidget parent = 0); burası sınıfın yapıcı fonksiyonu, *QWidget parent = 0 diyerek sınıfımızın başka bir sınıfa veyahut widgette diyebiliriz ait olmadığını belirtir, ileride görecemiz gibi bir nesne başka bir nesneye ait olabilmektedir. ~MainWindow(); burası yıkıcı fonksiyonumuz. private kısımda bulunan *Ui::MainWindow ui; designer ekranında oluşturduğumuz arayüze bir gösterici tanımlamaktadır.
  • mainwindow.cpp
    <br />#include &quot;mainwindow.h&amp;quot;<br />#include &quot;ui_mainwindow.h&amp;quot;
    
    MainWindow::MainWindow(QWidget *parent) :<br /> QMainWindow(parent),<br /> ui(new Ui::MainWindow)<br />{<br /> ui-&gt;setupUi(this);<br />}
    
    MainWindow::~MainWindow()<br />{<br /> delete ui;<br />}<br />
    

    Burası projemizin kaynak dosyası, başlık dosyamızda tanımlanan fonksiyonların içerikleridir. ui->setupUi(this); fonksiyonu #include "ui_mainwindow.h&quot; olarak eklediğimiz dosya içerinde Qt Creator tarafından oluşturulan otomatik bir fonksiyondur. Qt ile hazırladığımız arayüzler .ui dosyalarında xml yapısı kullanılarak tutulur. Projeji derlediğimizde MOC (Meta Object Compiler) tarafından bunlar kaynak koda çevrilirler işte bu kaynak kod ui_mainwindow.h dosyasının ta kendisidir. Bunun içeriğini görebilmek için en az bir kez derleme yapmalıyızki MOC tarafından kodları oluşturulsun.
  • mainwindow.ui

Bu dosyanın içeriği aşağıdaki gibi bir xml yapı içerisindedir. Bunlarda genellikle üzerinde değişiklik yapılmaz bu dosya sadece ekran üzerinde bulunan nesnelerin konum bilgileri vs. gösterir. Programın çalışma anına ilişkin bir dosya değildir. Derleyicinin gördüğü asıl dosya üretilen ui_mainwindow.h dosyasının içeriğidir.

<br />&amp;lt;?xml version=&quot;1.0&amp;quot; encoding=&quot;UTF-8&amp;quot;?&amp;gt;<br />&lt;ui version=&quot;4.0&amp;quot;&gt;<br /> &lt;class&amp;gt;MainWindow&amp;lt;/class&amp;gt;<br /> &lt;widget class=&quot;QMainWindow&amp;quot; name=&quot;MainWindow&amp;quot;&gt;<br /> &lt;property name=&quot;geometry&amp;quot;&gt;<br /> &lt;rect&amp;gt;<br /> &lt;x&amp;gt;0&amp;lt;/x&amp;gt;<br /> &lt;y&amp;gt;0&amp;lt;/y&amp;gt;<br /> &lt;width&amp;gt;400&amp;lt;/width&amp;gt;<br /> &lt;height&amp;gt;300&amp;lt;/height&amp;gt;<br /> &lt;/rect&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;property name=&quot;windowTitle&amp;quot;&gt;<br /> &lt;string&amp;gt;MainWindow&amp;lt;/string&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;widget class=&quot;QWidget&amp;quot; name=&quot;centralWidget&amp;quot;/&amp;gt;<br /> &lt;widget class=&quot;QMenuBar&amp;quot; name=&quot;menuBar&amp;quot;&gt;<br /> &lt;property name=&quot;geometry&amp;quot;&gt;<br /> &lt;rect&amp;gt;<br /> &lt;x&amp;gt;0&amp;lt;/x&amp;gt;<br /> &lt;y&amp;gt;0&amp;lt;/y&amp;gt;<br /> &lt;width&amp;gt;400&amp;lt;/width&amp;gt;<br /> &lt;height&amp;gt;21&amp;lt;/height&amp;gt;<br /> &lt;/rect&amp;gt;<br /> &lt;/property&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;widget class=&quot;QToolBar&amp;quot; name=&quot;mainToolBar&amp;quot;&gt;<br /> &lt;attribute name=&quot;toolBarArea&amp;quot;&gt;<br /> &lt;enum&amp;gt;TopToolBarArea&amp;lt;/enum&amp;gt;<br /> &lt;/attribute&amp;gt;<br /> &lt;attribute name=&quot;toolBarBreak&amp;quot;&gt;<br /> &lt;bool&amp;gt;false&amp;lt;/bool&amp;gt;<br /> &lt;/attribute&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;widget class=&quot;QStatusBar&amp;quot; name=&quot;statusBar&amp;quot;/&amp;gt;<br /> &lt;/widget&amp;gt;<br /> &lt;layoutdefault spacing=&quot;6&amp;quot; margin=&quot;11&amp;quot;/&amp;gt;<br /> &lt;resources/&amp;gt;<br /> &lt;connections/&amp;gt;<br />&lt;/ui&amp;gt;

Üçüncü Adım : Proje Dosyalarını Düzenleme

Proje üzerine bir adet yazı gösteren bileşen ve bir adet tıklama ögesi yani buton eklenmek istenmektedir. Bu 2 bileşene widget denilmektektedir. Qt üzerinde kullanacağınız tüm arayüz nesneleri widget olarak adlandırılır. Birçok widget hazır olarak kurulu gelmiş olsada kendinizde bir widget ekleyebilirsiniz, lakin bunlar biraz ileri seviye konular olduğu için bu kısımda anlatılmayacaktır.

mainwindow.ui dosyasına çift tıkladığınızda bir designer penceri açılacak, orta kısımda üzerinde çalıştığımız form nesnesi bulunmaktadır.(MainWindow Arayüzü). sol tarafta ise form üzerinde kullanacağımız widgetler bulunur. Sol taraftan bir adet QLabel ve QPushButton widgetini sürükleyerek form üzerine bırakınız.

Dördüncü Adım : Proje Derleme ve Çalıştırma

Projeyi kaydettikten sonra Build menüsünden Build Project seçerek veya Ctrl + B tuş kombinasyonunu kullanarak derleyebilirsiniz.
Veya Derlemek ve sonrasında çalıştırmak için Build menüsünden Run seçerek veya Ctrl + R tuş kombinasyonunu kullanarak hem derleyip hem çalıştırabilirsiniz.