http___qt-project.org_wiki_Temel_Qt_Programlama_Egitimi_1.xml
1.1 2.1 2.2 2.3 3.1 3.2 3.3 4.1 5.1 7.1 8.1 9.1 10.1 11.1 12.1 14.1 15.1 16.1 17.1 18.1 19.1 21.1 23.1 25.1 27.1 28.1 29.1 30.1 31.1 32.1 33.1 34.1 35.1 35.2 35.3 35.4 35.5 36.1 36.2 36.3
Need help… confused a bit with Qt Creator Hi all .. I m new to Qt 4.7 programming using Qt Creator .. Have some questions : 1) Whats the basic difference between Qt Quick Application / UI and Qt Widget based app (Qt Gui application) in terms of programming style and convensions ? The main difference I see it Quick App uses QML for GUI design while Qt Widget based app uses UI forms to design GUI using Drag and drop .. after this is a bit confusing for me. 2) Can some 1 explain me this code : - class MainWindow : public QMainWindow - Q_OBJECT - public: - explicit MainWindow(QWidget *parent = 0); - ~MainWindow(); - private: - Ui::MainWindow *ui; especially Q_OBJECT and - explicit MainWindow (QWidget *parent = 0); 3) And this code : - MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) - ui->setupUi(this); - MainWindow::~MainWindow() - delete ui; 4) If I want to program the same using Qt Quick what will the difference in code style ? -Regards , Umang G (Power_user_EX) 1 reply Qt creator is an IDE (Integrated Development Environment) which helps you developing your applications. The sections, you are showing, are C++ source code presumably generated by the Qt creator based it templates. Q_OBJECT is required for the Meta Object Compiler [developer.qt.nokia.com] The explicit statement is explained here [glenmccl.com] for example. All see there is basic C++ code. It is recommended to have sufficient knowledge of C++ for using it with Qt. You might want to look for a C++ tutorial first, if you are lacking this knowledge. One option for a tutorial. [cplusplus.com] Please consult google search for others. You must log in to post a reply. Not a member yet? Register here!
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 30.1 31.1 33.1 35.1 37.1 38.1 39.1 40.1 41.1 42.1 44.1 46.1 47.1 48.1 49.1 50.1 51.1 53.1 54.1 56.1 57.1 58.1 59.1 60.1 61.1 63.1 65.1 67.1 69.1 71.1 72.1 75.1 86.1 101.1 104.1 113.1 114.1 115.1 116.1 117.1 118.1 119.1
Table of Content Türkçe English 简体中文 فارسی Español Giriş Bu ders Qt-Creator tümleşik geliştirme ortamı (IDE) 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) 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. —> http://qt-project.org/downloads Kurulumun nasıl yapıldığıyla ilgili bu sayfadan [qt-project.org] 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 - Qt Creator Başlatın - Sırasıyla File – New File or Project – Applications – Qt Gui Application seçtikten sonra Choose butonuna tıklayınız. - 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 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. - 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. - 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. 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 - #include "mainwindow.h" - #include - int main(int argc, char *argv[]) - QApplication a(argc, argv); - MainWindow w; - return a.exec(); 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. - mainwindow.h - #ifndef MAINWINDOW_H - #define MAINWINDOW_H - #include - namespace Ui { - class MainWindow; - class MainWindow : public QMainWindow - Q_OBJECT - public: - explicit MainWindow(QWidget *parent = 0); - ~MainWindow(); - private: - Ui::MainWindow *ui; - #endif // MAINWINDOW_H 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 - #include "mainwindow.h" - #include "ui_mainwindow.h" - MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) - ui->setupUi(this); - MainWindow::~MainWindow() - delete ui; Burası projemizin kaynak dosyası, başlık dosyamızda tanımlanan fonksiyonların içerikleridir. ui->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 MOC 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. -  MainWindow -  MainWindow -  TopToolBarArea -  false Üçü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. Not: Aynı zamanda komut satırı kullanılarakta ilgili derleyiciye bağlı olarak derleme ve bağlama işlemini gerçekleştirebilirsiniz.