http___qt-project.org_wiki_Temel_Qt_Programlama_Egitimi_1.xml
1.1 3.1 3.2 3.3 3.4 3.5 4.1 4.2 5.1 6.1 7.1 7.2 8.1 8.2 9.1 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12.1 13.1 13.2 14.1 15.1 15.2 15.3 15.4 16.1 17.1 18.1 18.2 18.3 19.1 19.2 19.3 20.1 20.2 21.1 23.1 23.2 23.3 23.4 24.1 26.1 27.1 28.1 31.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 44.1 45.1 46.1 47.1 49.1 50.1 52.1 54.1 55.1 56.1 57.1 58.1 59.1 60.1 62.1 63.1 64.1 65.1 66.1 67.1 68.1 70.1 72.1 74.1 76.1 78.1 80.1 82.1 85.1 87.1 90.1 104.1 105.1 106.1 106.2 108.1 109.1 109.2 116.1 117.1 118.1 119.1 120.1 121.1 122.1 123.1 124.1 125.1 126.1 127.1 128.1 128.2 128.3
Qt5.1 on Rasberry Pi (full install not cross-compile) At last I have found a link that actually works, thanks guys. I am running the cube example on my Pi. Now I want to run a working Qt5 Windows 32 bit app on my Pi. Has anybody done this yet with Qt5? As it is suggested, can I place all the associated files on my Pi and compile the .pro project and run qmake etc or is this too simplistic? Just a few points to make compilation a little quicker. It took me 30 hours to compile 1) Reduce memory share to 16 2) Do not enable SSH 3) Overclocked at MEDIUM level only. Could be quicker if TURBO used. Note to run the cube example return the memory share to at least 128 otherwise nothing happens on the screen. CTRL+ALT+BACKSPACE to exit. Thanks I have run into a few problems. I have a very basic Qt5.0.1 (32 bit) project using Qt Creator 2.6.2 on my PC, simply comprising of a mainwindow.h, main.cpp, mainwindow.cpp and mainwindow.ui. The form has a single text box. There is no code, I just wanted to see the form appear on my RPI. With the projec built and showing the form on my PC, I transferred the project .pro and all files mentioned above into the opt/qt5/examples/gui folder. I compiled it, ran qmake and make. This flagged up errors about closing braces. When looking at the above files in leaf pad, they contained ascii characters, and not code text. Since I cannot inspect the mainwindow.ui code I cannot determine if this is also corrupt. I have also attempted to transfer .png and .bmp images from my PC to my RPI which are not recognised by either Gimp 2.8 or the image viewer. Is this a Windows versus Linux problem? Can I use Qt4 to build my form and compile it under Qt5? Thanks Actually if you are using WinSCP you just use it as is. You only need to use SFTP with Filezilla. If you transferred it via USB stick then you shouldn’t have any issues unless the encoding is incorrect. You may need to save them in UTF-8 format and make sure the Pi is set the same way, this shouldn’t affect the binary files though so something else may be going on. Do you have a website or some place where you could dump the files and some people here might be able to help you? Hi postmako, Ha it was an encryption issue from PC to USB to RPI. Now I have my Qt5 app, developed on PC, running on RPI thanks to you. I can really make some progress now and plan to make a handheld RPI with touch screen. I too have a full screen app but I guess this is an OpenGL thing. Any ideas would be welcome. Tried the ./app_name -platform xcb but no joy. I don’t have a web page but I’d be happy to share my working Qt5onPi.img, but even zipped it’s over 3GB. Any suggestions such a Dropbox Cheers I run the app from LXterminal. For the cube example I made a shortcut to the desktop and both are full screen. Ran cp command qmake and then make as per instructions. On the PC the window is correctly sized as expected and not full screen. Qt Creator 2.6.2 Windows 7 MinGw_32bit For Qt5onPi.pro - # Project created by QtCreator 2013-09-01T12:00:39 - QT += core gui - greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - TARGET = Qt5onPi - TEMPLATE = app - SOURCES += main.cpp\ - mainwindow.cpp \ - hled.cpp - HEADERS += mainwindow.h \ - hled.h - FORMS += mainwindow.ui For main.cpp - #include "mainwindow.h" - #include - int main(int argc, char *argv[]) - QApplication a(argc, argv); - MainWindow w; - return a.exec(); For mainwindow.cpp - #include "mainwindow.h" - #include "ui_mainwindow.h" - #include "hled.h" - MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) - ui->setupUi(this); - //Connect signals and slots - Read QT documentation for fundamentals - connect(ui->pushButton_On_Off, SIGNAL(clicked()), SLOT(onpushButton_On_OffClicked())); - connect(ui->dial_Volume, SIGNAL(actionTriggered(int)), SLOT(on_dial_Volume_actionTriggered(int))); - connect(ui->lcdNumber, SIGNAL(overflow()), SLOT(on_lcdNumber_overflow)); - ui->Power_Led_On_Off->turnOff(true); - setWindowTitle(tr("Qt5onPi v1.0")); - MainWindow::~MainWindow() - delete ui; - void MainWindow::on_pushButton_On_Off_clicked() - ui->Power_Led_On_Off->toggle(); - void MainWindow::on_dial_Volume_valueChanged(int value) - this->ui->lcdNumber->display(value); - void MainWindow::on_lcdNumber_overflow() Thanks Here’s the relevant mainwindow.ui code that defines the size set to max 430 × 430 -  MainWindow -  MainWindow Thanks Anyone know why I might be running into an issue building qt5 all of a sudden? I compiled it a week or so ago with no issue…now I run into this [pastebin.com] Just an update to let you guys know I now have Qt5.1.1 installed and running on my RPi, reading and writing to the ttyUSB0 port. The screen issue has been resolved simply in Qt5 in the .ui Form, where the API is displayed in the center of a £13 3.5” LCD monitor. The RPi is powered from a 5Ahr USB rechargeable power pack, making it portale. Hi I am using Qt on Windows and I would like to communicate with RPi. I’m trying to compile Qt as explained in this thread and on wiki pages but I have problems. - pi@raspberrypi ~/opt $ git clone git://gitorious.org/qt/qt5.git - Cloning into 'qt5'... - fatal: unable to connect to gitorious.org: - gitorious.org[0: 87.238.52.168]: errno=Connection timed out - gitorious.org[1: 2a02:c0:1014::1]: errno=Address family not supported by protocol Internet connection is working. I’m not an Linux expert. I would be grateful for any suggestions how to solve this problem. Thanks 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.