《qt基礎(chǔ)(嵌入式用戶(hù)圖形界面編程).ppt》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《qt基礎(chǔ)(嵌入式用戶(hù)圖形界面編程).ppt(64頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、嵌入式用戶(hù)圖形界面編程,嵌入式用戶(hù)圖形界面編程,課程目的 了解嵌入式圖形系統(tǒng) 掌握QT/E開(kāi)發(fā)環(huán)境、關(guān)鍵技術(shù) 通過(guò)實(shí)例熟悉基于Qt/E的嵌入式GUI設(shè)計(jì),1、嵌入式圖形系統(tǒng)簡(jiǎn)介,1.1 Linux圖形系統(tǒng)的發(fā)展史 linux本身沒(méi)有圖形界面, linux現(xiàn)在的圖形界面的實(shí)現(xiàn)只是linux下的應(yīng)用程序?qū)崿F(xiàn)的。,1、嵌入式圖形系統(tǒng)簡(jiǎn)介,1.1 Linux圖形系統(tǒng)的發(fā)展史 圖形界面并不是linux 的一部分,linux只是一個(gè)基于命令行的操作系統(tǒng)。 linux和Xfree的關(guān)系就相當(dāng)于當(dāng)年的DOS和 windows3.0 一樣,windows3.0 不是獨(dú)立的操作系統(tǒng),它只是 DOS的擴(kuò)充,是DOS
2、下的應(yīng)用程序級(jí)別的系統(tǒng),不是獨(dú)立的操作系統(tǒng),同樣X(jué)Free只是linux下的一個(gè)應(yīng)用程序 而已,不是系統(tǒng)的一部分。,1、嵌入式圖形系統(tǒng)簡(jiǎn)介,1.1 Linux圖形系統(tǒng)的發(fā)展史 但是X的存在可以方便用戶(hù)使用電腦。WINDOWS95及以后的版本就不一樣了,他們的圖形界面是操作系統(tǒng)的一部分,圖形界面在系統(tǒng)內(nèi)核中就實(shí)現(xiàn)了,沒(méi)有了圖形界面 windows就不成為windows了,但linux卻不一樣,沒(méi)有圖形界面linux還是 linux,很多裝linux的 WEB服務(wù)器就根本不裝X服務(wù)器。這也是WINDOWS和linux的重要區(qū)別之一。,1、嵌入式圖形系統(tǒng)簡(jiǎn)介,1.1 Linux圖形系統(tǒng)的發(fā)展史 X
3、Window:業(yè)界標(biāo)準(zhǔn) Open Look:來(lái)自SUN與AT QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #inc
4、lude int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20
5、); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello
6、world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc,
7、argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,,#include #include int main(int argc, char ** argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,6 實(shí)例一,二、程序編譯 1,生成工程文件 qmake -project 2
8、,生成Makefile qmake 3, 編譯 make,6 實(shí)例二,一、工程創(chuàng)建 二、界面設(shè)計(jì) 三、代碼編輯 四、程序編譯,6 實(shí)例三(信號(hào)與槽),一、工程創(chuàng)建 二、界面設(shè)計(jì) 三、代碼編輯 四、程序編譯,課堂回顧,1、怎樣將信號(hào)連接到槽? 2、能否將多個(gè)槽連接到一個(gè)信號(hào)?,7 Qt Designer,,直接使用代碼來(lái)直接編寫(xiě)GUI無(wú)疑是非常痛苦的,好在QT提供了界面開(kāi)發(fā)工具:QTdesigner Qt應(yīng)用程序除了使用手工編寫(xiě)代碼的方式外,還可以用過(guò)Qt Desinger來(lái)完成 Qt Designer的功能十分強(qiáng)大,界面類(lèi)似于VB,而且還提供了大量可供編程使用的組件,7 Qt Design
9、er,,基于Qt Designer程序設(shè)計(jì),,在使用Qt Designer程序開(kāi)發(fā)時(shí),一般要涉及到下面幾個(gè)步驟: 1.創(chuàng)建和初始化子部件 2.設(shè)置子部件布局 3.設(shè)置Tab鍵次序(不是必須) 4.建立信號(hào)與插槽的連接 5.編寫(xiě)事件處理函數(shù),,基于Qt Designer程序設(shè)計(jì),,基于Qt Designer程序設(shè)計(jì),,Qt Designer的工作過(guò)程,Qt Designer將工程文件組織成.ui的文件 由.ui文件生成.h文件 UIC -o form.h form.ui 需要注意的是,在QT3中使用例如UIC -o form.cpp-i form.hform.ui這樣的方式來(lái)生成表單的CPP文件
10、,但在QT4中,UIC已經(jīng)作了修改,不能輸出表單的CPP文件 由C++編譯器編譯所有.h和.cpp文件,QT編程模式,Qt 程序開(kāi)發(fā)流程,1.使用designer 設(shè)計(jì)界面,添加窗口組件 建立信號(hào)槽連接 編寫(xiě)事件處理函數(shù) 保存工程為.ui文件,得到一個(gè)主窗口類(lèi) 2. 編寫(xiě)main.cpp文件進(jìn)行主窗口類(lèi)的實(shí)例化及顯示 3.設(shè)置編譯所需的環(huán)境變量 QTDIR =,Qt 程序開(kāi)發(fā)流程,4.使用qmake生成.pro工程文件 rootIntelqt4qmake -project 5.通過(guò)qmake自動(dòng)生成Makefile文件 rootIntelqt4qmake 6. make生成可執(zhí)行文件 7.運(yùn)行,