嵌入式Linux應(yīng)用開發(fā)教程 教學課件 華清遠見嵌入式學院 趙蒼明 穆煜 第九章 Qt圖形編程_第1頁
嵌入式Linux應(yīng)用開發(fā)教程 教學課件 華清遠見嵌入式學院 趙蒼明 穆煜 第九章 Qt圖形編程_第2頁
嵌入式Linux應(yīng)用開發(fā)教程 教學課件 華清遠見嵌入式學院 趙蒼明 穆煜 第九章 Qt圖形編程_第3頁
嵌入式Linux應(yīng)用開發(fā)教程 教學課件 華清遠見嵌入式學院 趙蒼明 穆煜 第九章 Qt圖形編程_第4頁
嵌入式Linux應(yīng)用開發(fā)教程 教學課件 華清遠見嵌入式學院 趙蒼明 穆煜 第九章 Qt圖形編程_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

在線教務(wù)輔導網(wǎng):://教材其余課件及動畫素材請查閱在線教務(wù)輔導網(wǎng)QQ:349134187

或者直接輸入下面地址:嵌入式應(yīng)用程序設(shè)計

第九章Qt圖形編程

9.1嵌入式GUI簡介9.2Qt/Embedded開發(fā)入門9.3實驗內(nèi)容9.4小結(jié)9.5思考與練習本章課程:3

目前的桌面機操作系統(tǒng)大多有著美觀、操作方便、功能齊全的GUI(圖形用戶界面),例如KDE或者GNOME。GUI(圖形用戶界面)是指計算機與其使用者之間的對話接口,可以說,GUI是當今計算機技術(shù)的重大成就。它的存在為使用者提供了友好便利的界面,并大大地方便了非專業(yè)用戶的使用,使得人們從繁瑣的命令中解脫出來,可以通過窗口、菜單方便地進行操作。在嵌入式系統(tǒng)中,GUI的地位也越來越重要,但是不同于桌面機系統(tǒng),嵌入式GUI要求簡單、直觀、可靠、占用資源小且反應(yīng)快速,以適應(yīng)系統(tǒng)硬件資源有限的條件。另外,由于嵌入式系統(tǒng)硬件本身的特殊性,嵌入式GUI應(yīng)具備高度可移植性與可裁減性,以適應(yīng)不同的硬件條件和使用需求。9.1嵌入式GUI簡介4

嵌入式GUI特點體積?。贿\行時耗用系統(tǒng)資源小;上層接口與硬件無關(guān),高度可移植;高可靠性;在某些應(yīng)用場合應(yīng)具備實時性。9.1嵌入式GUI簡介5

9.1.1Qt/EmbeddedQt/Embedded是Trolltech公司(目前已被Nokia收購)為嵌入式系統(tǒng)開發(fā)的Qt版本。從版本開始,Qt/Embedded改名為QtopiaCore,又從版本開始,QtopiaCore又改名為QtforEmbeddedLinux.9.1嵌入式GUI簡介6

9.1.1Qt/EmbeddedQt/Embedded的優(yōu)缺點:9.1嵌入式GUI簡介7

9.1.2MiniGUIMniGUI由魏永明先生和眾多志愿者開發(fā),是面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng)。自1999年初遵循GPL條款發(fā)布第一個版本以來,MiniGUI已廣泛應(yīng)用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)及工業(yè)儀表、便攜式多媒體播放器、查詢終端等產(chǎn)品和領(lǐng)域。目前,MiniGUI已成為跨操作系統(tǒng)、跨硬件平臺的圖形用戶界面支持系統(tǒng),可在Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系統(tǒng)以及Win32平臺上運行,已驗證的硬件平臺包括ix86、ARM、PowerPC、MIPS、DragonBall、ColdFire等等。MiniGUI為基于嵌入式Linux的高端嵌入式設(shè)備提供了完整的多進程支持,從而將MiniGUI從中端市場帶到了高端市場。最新的MiniGUI則是繼之后的一個重要增強,增加了如外觀渲染器技術(shù)、雙向文本支持、透明控件、獨立滾動條控件、UPF字體和位圖字體等新的特性。9.1嵌入式GUI簡介8

9.1.2Microwindow、TinyX等它由魏永明先生和眾多志愿者開發(fā),是面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng)。自1999年初遵循GPL條款發(fā)布第一個版本以來,MiniGUI已廣泛應(yīng)用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)及工業(yè)儀表、便攜式多媒體播放器、查詢終端等產(chǎn)品和領(lǐng)域。目前,MiniGUI已成為跨操作系統(tǒng)、跨硬件平臺的圖形用戶界面支持系統(tǒng),可在Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系統(tǒng)以及Win32平臺上運行,已驗證的硬件平臺包括ix86、ARM、PowerPC、MIPS、DragonBall、ColdFire等等。MiniGUI為基于嵌入式Linux的高端嵌入式設(shè)備提供了完整的多進程支持,從而將MiniGUI從中端市場帶到了高端市場。最新的MiniGUI則是繼之后的一個重要增強,增加了如外觀渲染器技術(shù)、雙向文本支持、透明控件、獨立滾動條控件、UPF字體和位圖字體等新的特性。9.1嵌入式GUI簡介9

9.1.3Microwindow、TinyX等MicrowindowsOpenSourceProject成立的宗旨在于針對體積小的裝置,建立一套先進的視窗環(huán)境,在Linux桌面上通過交叉編譯可以很容易地制作出Microwindows的程序。Microwindows能夠在沒有任何操作系統(tǒng)或其他圖形系統(tǒng)的支持下運行,它能對裸顯示設(shè)備進行直接操作。這樣,Microwindows就顯得十分小巧,便于移植到各種硬件和軟件系統(tǒng)上。 然而Microwindows的免費版本進展一直很慢,幾乎處于停頓狀態(tài),而且至今為止,國內(nèi)沒有任何一家對Microwindows提供全面技術(shù)支持、服務(wù)和擔保的專業(yè)公司。TinyXServer是XFree86Project的一部分,由KeithPachard發(fā)展起來的,而他本身就是XFree86專案的核心成員之一。一般的XServer都過于龐大,因此KeithPackard就以XFree86為基礎(chǔ),精簡而成TinyXServer,它的體積可以小到幾百KB,非常適合應(yīng)用于嵌入式環(huán)境。就純XWindowSystem搭配TinyXServer架構(gòu)來說,其最大的優(yōu)點就是具有很好的彈性開發(fā)機制,并能大大提高開發(fā)速度。因為與桌面的X架構(gòu)相同,因此相對于很多以Qt、GTK+、FLTK等為基礎(chǔ)開發(fā)的軟件可以很容易地移植過來。9.1嵌入式GUI簡介10

常見GUI參數(shù)比較:9.1嵌入式GUI簡介11

9.2.1Qt/Embedded介紹架構(gòu)Qt/Embedded以原始Qt為基礎(chǔ),并做了許多出色的調(diào)整以適用于嵌入式環(huán)境。Qt/Embedded通過QtAPI與LinuxI/O設(shè)施直接交互,成為嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很省內(nèi)存,因為它不需要一個X服務(wù)器或是Xlib庫,它在底層拋棄了Xlib,采用framebuffer(幀緩沖)作為底層圖形接口。同時,將外部輸入設(shè)備抽象為keyboard和mouse輸入事件。Qt/Embedde的應(yīng)用程序可以直接寫內(nèi)核緩沖幀,這避免開發(fā)者使用繁瑣的Xlib/Server系統(tǒng)。9.2Qt/Embedded開發(fā)入門Qt/Embedded與QtX11的linux版本的比較12

9.2.1Qt/Embedded介紹Qt/Embedded組件窗口系統(tǒng)字體輸入設(shè)備機輸入法屏幕加速9.2Qt/Embedded開發(fā)入門13

9.2.1Qt/Embedded介紹:Qt的開發(fā)環(huán)境Qt/Embedded的開發(fā)環(huán)境可以取代那些我們熟知的UNIX和Windows開發(fā)工具。它提供了幾個跨平臺的工具使得開發(fā)變得迅速和方便,尤其是它的圖形設(shè)計器。UNIX下的開發(fā)者可以在PC機或者工作站使用虛擬緩沖幀,從而可以模仿一個和嵌入式設(shè)備的顯示終端大小,像素相同的顯示環(huán)境。嵌入式設(shè)備的應(yīng)用可以在安裝了一個跨平臺開發(fā)工具鏈的不同的平臺上編譯。最通常的做法是在一個UNIX系統(tǒng)上安裝跨平臺的帶有l(wèi)ibc庫的GNUC++編譯器和二進制工具。在開發(fā)的許多階段,一個可替代的做法是使用Qt的桌面版本9.2Qt/Embedded開發(fā)入門14

9.2.1Qt/Embedded介紹:Qt的支撐工具qmake是一個為編譯Qt/Embedded庫和應(yīng)用而提供的Makefile生成器。它能夠根據(jù)一個工程文件(.pro)產(chǎn)生不同平臺下的Makefile文件。qmake支持跨平臺開發(fā)和影子生成(影子生成是指當工程的源代碼共享給網(wǎng)絡(luò)上的多臺機器時,每臺機器編譯鏈接這個工程的代碼將在不同的子路徑下完成,這樣就不會覆蓋別人的編譯鏈接生成的文件。qmake還易于在不同的配置之間切換。)designer(Qt圖形設(shè)計器)可以使開發(fā)者可視化地設(shè)計對話框而不需編寫代碼。使用Qt圖形設(shè)計器的布局管理可以生成能平滑改變尺寸的對話框。9.2Qt/Embedded開發(fā)入門15

9.2.2Qt/Embedded信號和插槽機制機制概述信號和插槽機制是Qt的核心機制。信號和插槽是一種高級接口,應(yīng)用于對象之間的通信,它是Qt的核心特性,也是Qt區(qū)別于其他工具包的重要地方。信號和插槽是Qt自行定義的一種通信機制,它獨立于標準的C/C++語言,因此要正確的處理信號和插槽,必須借助一個稱為moc(MetaObjectCompiler)的Qt工具,該工具是一個C++預處理程序,它為高層次的事件處理自動生成所需要的附加代碼。9.2Qt/Embedded開發(fā)入門16

9.2.2Qt/Embedded信號和插槽機制機制概述對象間信號與槽之間的關(guān)系9.2Qt/Embedded開發(fā)入門17

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(1)信號Qt的signals關(guān)鍵字指出進入了信號聲明區(qū),隨后即可聲明自己的信號。示例:signals:voidmySignal();voidmySignal(intx);voidmySignalParam(intx,inty);9.2Qt/Embedded開發(fā)入門18

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(2)插槽插槽是普通的成員函數(shù),因此與其他的函數(shù)一樣,它們也有存取權(quán)限。插槽的存取權(quán)限決定了誰能夠與其相關(guān)聯(lián)。同普通的C++成員函數(shù)一樣,插槽函數(shù)也分為3種類型,即publicslots、privateslots和protectedslots。publicslots:在這個區(qū)內(nèi)聲明的槽意味著任何對象都可將信號與之相連接。這對于組件編程非常有用,用戶可以創(chuàng)建彼此互不了解的對象,將它們的信號與槽進行連接以便信息能夠正確地傳遞。protectedslots:在這個區(qū)內(nèi)聲明的槽意味著當前類及其子類可以將信號與之相連接。這適用于那些槽,它們是類實現(xiàn)的一部分,但是其界面接口卻面向外部。privateslots:在這個區(qū)內(nèi)聲明的槽意味著只有類自己可以將信號與之相連接。這適用于聯(lián)系非常緊密的類。9.2Qt/Embedded開發(fā)入門19

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(2)插槽插槽也能夠被聲明為虛函數(shù),這也是非常有用的。插槽的聲明也是在頭文件中進行的。示例:

publicslots: voidmySlot(); voidmySlot(intx); voidmySignalParam(intx,inty);9.2Qt/Embedded開發(fā)入門20

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(3)信號與插槽關(guān)聯(lián)通過調(diào)用QObject對象的connect()函數(shù)可以將某個對象的信號與另外一個對象的插槽函數(shù)或信號相關(guān)聯(lián),當發(fā)射者發(fā)射信號時,接收者的槽函數(shù)或信號將被調(diào)用。函數(shù)定義:boolQObject::connect(constQObject*sender,constchar*signal,constQObject*receiver,constchar*member)[static]9.2Qt/Embedded開發(fā)入門21

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(3)信號與插槽關(guān)聯(lián)信號與插槽關(guān)聯(lián)定義了兩個對象:標簽對象label和滾動條對象scroll,并將valueChanged()信號與標簽對象的setNum()插槽函數(shù)相關(guān)聯(lián),另外信號還攜帶了一個整型參數(shù),這樣標簽總是顯示滾動條所處位置的值。示例:QLabel*label=newQLabel;QScrollBar*scroll=newQScrollBar;QObject::connect(scroll,SIGNAL(valueChanged(int)),label,SLOT(setNum(int)));9.2Qt/Embedded開發(fā)入門229.2Qt/Embedded開發(fā)入門9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(3)信號與插槽關(guān)聯(lián)信號與信號相關(guān)聯(lián)MyWidget創(chuàng)建了一個私有的按鈕aButton,按鈕的單擊事件產(chǎn)生的信號clicked()與另外一個信號aSignal()進行關(guān)聯(lián)。這樣,當信號clicked()被發(fā)射時,信號aSignal()也接著被發(fā)射。classMyWidget:publicQWidget{public:MyWidget();...signals:voidaSignal();...private:...QPushButton*aButton;};MyWidget::MyWidget(){ aButton=newQPushButton(this); connect(aButton,SIGNAL(clicked()),SIGNAL(aSignal()));}

9.2.2Qt/Embedded信號和插槽機制信號與插槽的實現(xiàn)(4)解除信號與插槽關(guān)聯(lián)當信號與槽沒有必要繼續(xù)保持關(guān)聯(lián)時,用戶可以使用disconnect()函數(shù)來斷開連接。boolQObject::disconnect(constQObject*sender,constchar*signal,constObject*receiver,constchar*member)[static]有3種情況必須使用disconnect()函數(shù):斷開與某個對象相關(guān)聯(lián)的任何對象斷開與某個特定信號的任何關(guān)聯(lián)斷開兩個對象之間的關(guān)聯(lián)9.2Qt/Embedded開發(fā)入門24

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/X11步驟解壓源碼包運行配置程序編譯Qt源代碼安裝Qt設(shè)置環(huán)境變量9.2Qt/Embedded開發(fā)入門25

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/X11步驟解壓源碼包#cd/home/user_name#tarzxvf9.2Qt/Embedded開發(fā)入門26

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/X11運行配置程序#cd#./configure9.2Qt/Embedded開發(fā)入門27

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/X11編譯Qt源代碼#make安裝Qt#makeinstall9.2Qt/Embedded開發(fā)入門28

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/X11設(shè)置環(huán)境變量#vi$HOME/.bash_profileexportPATH=$QTDIR/bin:$PATHexportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH#source$HOME/.bash_profile9.2Qt/Embedded開發(fā)入門29

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded開發(fā)環(huán)境主機系統(tǒng):Ubuntu編譯器版本:gcc/g;arm-linux-gcc/g內(nèi)核源碼:目標平臺:s3c2410安裝步驟解壓源碼包運行配置程序編譯Qt/Embedded源代碼安裝Qt/Embedded設(shè)置環(huán)境變量復制庫文件為開發(fā)板設(shè)置環(huán)境變量9.2Qt/Embedded開發(fā)入門30

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded解壓源碼包#cd/home/user_name#tarzxvf9.2Qt/Embedded開發(fā)入門31

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded運行配置程序#cd#./configure–embeddedarm9.2Qt/Embedded開發(fā)入門32

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded編譯Qt/Embedded源代碼#make安裝Qt/Embedded#makeinstall9.2Qt/Embedded開發(fā)入門33

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded設(shè)置環(huán)境變量為了更方便的使用Qt/Embedded提供的各種工具,同Qt/X11一樣,需要對用戶的環(huán)境變量進行設(shè)置。如果前面已經(jīng)把Qt/X11的目錄加入到PATH,那么在開發(fā)Qt/Embedded程序時,最好保證將Qt/Embedded的目錄加在前面,因為現(xiàn)在使用的都是Qt/Embedded中的工具。復制庫文件#cp/usr/local/Trolltech/QtEmbedded-4.4.3/lib/libQt*/rootfs/home/qt/lib為開發(fā)板設(shè)置環(huán)境變量9.2Qt/Embedded開發(fā)入門34

9.2.3搭建Qt/Embedded開發(fā)環(huán)境安裝Qt/Embedded為開發(fā)板設(shè)置環(huán)境變量在開發(fā)板根文件系統(tǒng)的/bin目錄下建立一個腳本文件,用來設(shè)置環(huán)境變量。#cd/rootfs/bin#!/bin/shexportQTDIR=/home/qtexportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH9.2Qt/Embedded開發(fā)入門35

9.2.4Qt/Embedded窗口部件Qt提供了一整套的窗口部件。它們組合起來可用于創(chuàng)建用戶界面的可視元素。按鈕、菜單、滾動條、消息框和應(yīng)用程序窗口都是窗口部件的實例。窗口部件是QWidget或其子類的實例,用戶自定義的窗口通過子類化得到。9.2Qt/Embedded開發(fā)入門36

9.2.4Qt/Embedded窗口部件Hello窗口示例#include<QApplication>#include<QLabel>intmain(intargc,char**argv){ QApplicationapp(argc,argv); QLabel*label=newQLabel("<h2><i>Hello</i>"

"<fontcolor=red>Qt!</font></h2>");

hello->show(); return();}9.2Qt/Embedded開發(fā)入門37

9.2.4Qt/Embedded窗口部件常見窗口組合9.2Qt/Embedded開發(fā)入門38

9.2.4Qt/Embedded窗口部件自定義窗口鐘表部件是一個能顯示當前時間并自動更新的LCD。一個冒號分隔符隨秒數(shù)的流逝而閃爍9.2Qt/Embedded開發(fā)入門39

9.2.4Qt/Embedded窗口部件自定義窗口實現(xiàn):#include<QLCDNumber>classClock:publicQLCDNumber{public: Clock(QWidget*parent=0);protected: voidtimerEvent(QTimerEvent*event);private: voidshowTime(); boolshowingColon;};9.2Qt/Embedded開發(fā)入門40

9.2.4Qt/Embedded窗口部件自定義窗口實現(xiàn):#include<QDateTime>#include""Clock::Clock(QWidget*parent):QLCDNumber(parent),showingColon(true){ showTime(); startTimer(1000);}voidClock::timerEvent(QTimerEvent*){ showTime();}9.2Qt/Embedded開發(fā)入門41

9.2.4Qt/Embedded窗口部件voidClock::showTime(){ QStringtimer=QTime::currentTime().toString().left(5); if(!showingColon) { time[2]=''; } display(time); showingColon=!showingColon;}9.2Qt/Embedded開發(fā)入門42

9.2.4Qt/Embedded窗口部件自定義窗口實現(xiàn):#include<QApplication>#include""intmain(intargc,char**argv){ QApplicationapp(argc,argv); Clock*clock=newClock; clock->show(); return();}9.2Qt/Embedded開發(fā)入門43

9.2.5Qt/Embedded圖形界面編程主窗口類QMainWindow類提供了一個典型應(yīng)用程序的主窗口框架。示例:QTextEdit*editor=newQTextEdit(mainWindow);mainWindow->setCentralWidget(editor);9.2Qt/Embedded開發(fā)入門44

9.2.5Qt/Embedded圖形界面編程菜單類QMenu類以垂直列表的方式顯示菜單項,它可以是單個的(例如上下文相關(guān)菜單),可以以菜單欄的方式出現(xiàn),或者是別的彈出式菜單的子菜單出現(xiàn)。示例:QMenu*menu_F=newQMenu("&File",this);QAction*actNew=menu_F->addAction(QIcon(":/new.png"),"&New");actNew->setShortcut(QKeySequence("Ctrl+N"));QAction*actOpen=menu_F->addAction(QIcon(":/open.png"),"&Open");actOpen->setShortcut(QKeySequence("Ctrl+O"));QAction*actExit=menu_F->addAction("&Exit");actExit->setShortcut(QkeySequence("Ctrl+Q"));9.2Qt/Embedded開發(fā)入門45

9.2.5Qt/Embedded圖形界面編程工具欄QToolButton類實現(xiàn)了具有一個圖標,一個3D框架和一個可選標簽的工具欄。旁述提示欄actNew->setStatusTip("openafile");這是什么actNew->setWhatsThis("open");9.2Qt/Embedded開發(fā)入門46

9.2.5Qt/Embedded圖形界面編程動作應(yīng)用程序通常提供幾種不同的方式來執(zhí)行特定的動作。比如,許多應(yīng)用程序通過菜單(Flie->Save),工具欄(像一個軟盤的按鈕)和快捷鍵(Ctrl+S)來提供“Save”動作。QAction類封裝了“動作”這個概念。它允許程序員在某個地方定義一個動作。示例:QMenu*menu_F=newQMenu("&File",this);QToolBar*ToolBar_F=addToolBar("&File");actOpen=newQAction(QIcon(":/images/open.png"),"&Open",this);actOpen->setShortcuts(QKeySequence::Open);actOpen->setStatusTip(tr("Openanexistingfile"));connect(actOpen,SIGNAL(triggered()),this,SLOT(open()));menu_F->addAction(actOpen);ToolBar_F->addAction(actOpen);9.2Qt/Embedded開發(fā)入門47

9.2.6Qt/Embedded對話框設(shè)計布局內(nèi)建布局管理器Qt提供了3種用于布局管理的類:QHBoxLayout,QVBox-

Layout和QGridLayout。QHBoxLayout布局管理把窗體按照水平方向從左至右排成一行。QVBoxLayout布局管理把窗體按照垂直方向從上至下排成一列。QGridLayout布局管理以網(wǎng)格的方式來排列窗體,一個窗體可以占據(jù)多個網(wǎng)格。9.2Qt/Embedded開發(fā)入門48

9.2.6Qt/Embedded對話框設(shè)計布局三種布局管理器類示意圖9.2Qt/Embedded開發(fā)入門49

9.2.6Qt/Embedded對話框設(shè)計布局如何微調(diào)布局設(shè)置一些延伸項目或間隔項目,延伸或間隔項目會填充空余的布局空間。改變子部件的尺寸策略。通過調(diào)用QWidget::setSizePolicy(),程序員可以仔細調(diào)整子部件的縮放行為。子部件可以設(shè)置為擴展、收縮、保持原大小等狀態(tài)。改變子部件的建議大小。QWidget::sizeHint()和QWidget::minimumSizeHint()會根據(jù)內(nèi)容返回部件的首選尺寸和最小首選尺寸。內(nèi)建部件提供了合適的重新實現(xiàn)。設(shè)置延伸因子。延伸因子規(guī)定了子部件的相應(yīng)增量,比如,2/3的可用空間分配給部件A而1/3分配給B。9.2Qt/Embedded開發(fā)入門50

9.2.6Qt/Embedded對話框設(shè)計布局布局嵌套 布局可以嵌套任意層9.2Qt/Embedded開發(fā)入門51

9.2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論