freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

qt嵌入式圖形開發(fā)(入門篇)(編輯修改稿)

2025-05-04 06:33 本頁面
 

【文章內(nèi)容簡介】 些) timerEvent() 函數(shù)是從QObject (Qwidget的父類)對(duì)象繼承而來的,這個(gè)函數(shù)會(huì)被系統(tǒng)定期調(diào)用。paintEvent() 函數(shù)是從QWidget 繼承而來的并且當(dāng)窗體需要重畫時(shí)這個(gè)函數(shù)就會(huì)被調(diào)用。 timerEvent() 和 paintEvent() 函數(shù)是“事件句柄”的兩個(gè)例子。應(yīng)用對(duì)象以 重載父類對(duì)象的虛擬函數(shù)events (QEvent objects) 的形式接收系統(tǒng)的事件。大約有超過50個(gè)的系統(tǒng)事件是較常用的,例如 MouseButtonPress, MouseButtonRelease, KeyPress, KeyRelease, Paint, Resize 和Close. 對(duì)象可以對(duì)發(fā)給它們的事件做出響應(yīng)或者篩選一些事件后再發(fā)送給別的對(duì)象。 include include include AnalogClock::AnalogClock( QWidget *parent, const char *name ) : QWidget( parent, name ){ startTimer( 12000 )。 resize( 100, 100 )。 } void AnalogClock::timerEvent( QTimerEvent * ) { update()。 } void AnalogClock::paintEvent( QPaintEvent * ) { QCOORD hourHand[8] = { 2, 0, 0, 2, 2, 0, 0, 25 }。 QCOORD minuteHand[8] = { 1, 0, 0, 1, 1, 0, 0, 40 }。 QTime time = QTime::currentTime()。QPainter painter( this )。( 50, 50, 100, 100 )。( black )。for ( int i = 0。 i 12。 i++ ){ ( 44, 0, 46, 0 )。( 30 )。} ()。( 30 * (() % 12) + () / 2 )。( QPointArray(4, hourHand) )。 ()。()。( 6 * () )。 ( QPointArray(4, minuteHand) )。 ()。} 構(gòu)造函數(shù)設(shè)置窗口的尺寸大小為100 x 100,并且告訴系統(tǒng)每隔12秒調(diào)用一次timerEvent()函數(shù),從而對(duì)模擬鐘的窗體進(jìn)行刷新。在 timerEvent()函數(shù)中, 通過調(diào)用QWidget的函數(shù)update()就可以告訴Qt,窗體需要立即重畫,緊接著Qt就會(huì)產(chǎn)生一個(gè)繪制事件并且調(diào)用paintEvent()函數(shù)。在paintEvent()函數(shù)中,一個(gè)Qpainter對(duì)象用于在窗體上繪制12個(gè)刻度以及分針,時(shí)針。Qpainter類提供了一種統(tǒng)一的方式用于繪制窗體,位圖,矢量圖等,它提供了繪制點(diǎn),線,橢圓,多邊形,弧,貝塞爾曲線等功能,一個(gè)Qpainter的坐標(biāo)系可以被轉(zhuǎn)變,縮放,旋轉(zhuǎn),和剪切,這樣對(duì)象就可以根據(jù)它在窗口或者窗體上的位置繪制出一個(gè)剪切的視圖。剪切可以使窗體繪制時(shí)減少閃爍。使用QPainter 的子類QdirectPainter可以鎖定和直接訪問幀緩沖區(qū)域。 文件 和 完全的定義和實(shí)現(xiàn)了 AnalogClock 客戶窗體類,這個(gè)窗體是現(xiàn)在就可以使用的。 include include int main( int argc, char **argv ) { QApplication app( argc, argv )。AnalogClock *clock = new AnalogClock。 ( clock )。clockshow()。return ()。} 2.3.5 主窗口 QMainWindow類是為應(yīng)用的主窗口提供一個(gè)擺放相關(guān)窗體的框架。一個(gè)主窗口包含了一組標(biāo)準(zhǔn)窗體的集合。主窗口的頂部包含一個(gè)菜單欄,它的下方放置著一個(gè)工具欄,工具欄可以移動(dòng)到其它的??繀^(qū)域。主窗口允許??康奈恢糜许敳?,左邊,右邊和底部。工具欄可以被拖放到一個(gè)??康奈恢?,從而形成一個(gè)浮動(dòng)的工具面板。主窗口的下方,也就是在底部的停靠位置之下有一個(gè)狀態(tài)欄。主窗口的中間區(qū)域可以包含其它的窗體。提示工具和“這是什么”幫助按鈕以旁述的方式闡述了用戶接口的使用方法。對(duì)于小屏幕的設(shè)備,使用Qt圖形設(shè)計(jì)器定義的標(biāo)準(zhǔn)的Qwidget模板比使用主窗口類更好一些。典型的模板包含有菜單欄,工具欄,可能沒有狀態(tài)欄(在必要的情況下,可以用任務(wù)欄,標(biāo)題欄來顯示狀態(tài))2.3.6 菜單彈出式菜單QpopupMenu類以垂直列表的方式顯示菜單項(xiàng),它可以是單個(gè)的(例如上下文相關(guān)菜單),可以以菜單欄的方式出現(xiàn),或者是別的彈出式菜單的子菜單出現(xiàn)。每個(gè)菜單項(xiàng)可以有一個(gè)圖標(biāo),一個(gè)復(fù)選框和一個(gè)加速器(快捷鍵),菜單項(xiàng)通常對(duì)應(yīng)一個(gè)動(dòng)作(例如存盤),分隔器通常顯示成一條豎線,它用于把一組相關(guān)聯(lián)的動(dòng)作菜單分立成組。 下面是一個(gè)建立包含有New,Open和Exit菜單項(xiàng)的文件菜單的例子。QPopupMenu *fileMenu = new QPopupMenu( this )。 fileMenuinsertItem( amp。New, this, SLOT(newFile()), CTRL+Key_N )。 fileMenuinsertItem( amp。Open..., this, SLOT(open()), CTRL+Key_O )。 fileMenuinsertSeparator()。 fileMenuinsertItem( Eamp。xit, qApp, SLOT(quit()), CTRL+Key_Q )。 當(dāng)一個(gè)菜單項(xiàng)被選中,和它相關(guān)的插槽將被執(zhí)行。加速器(快捷鍵)很少在一個(gè)沒有鍵盤輸入的設(shè)備上使用,Qt/Embedded 的典型配置并未包含對(duì)加速器的支持。上面出現(xiàn)的代碼“amp。New”意思是在桌面機(jī)器上以“New”的方式顯示出來,但是在嵌入式設(shè)備上,它只會(huì)顯示為“New”。 QmenuBar類實(shí)現(xiàn)了一個(gè)菜單欄,它會(huì)自動(dòng)的設(shè)置幾何尺寸并在它的父窗體的頂部顯示出來,如果父窗體的寬度不夠?qū)捯灾虏荒茱@示一個(gè)完整的菜單欄,那么菜單欄將會(huì)分為多行顯示出來。Qt內(nèi)置的布局管理能夠自動(dòng)的調(diào)整菜單欄。 Qt的菜單系統(tǒng)是非常靈活的,菜單項(xiàng)可以被動(dòng)態(tài)的使能,失效,添加或者刪除。通過子類化QcustomMenuItem,我們可以建立客戶化外觀和功能的菜單項(xiàng)。2.3.7 工具欄 QtoolButton類實(shí)現(xiàn)了一個(gè)帶有圖標(biāo),3維邊框和可選標(biāo)簽的工具欄按鈕。切換工具欄按鈕具有開、關(guān)的特征,其它的按鈕則執(zhí)行一個(gè)命令。不同的圖標(biāo)用來表示按鈕的活動(dòng),無效、使能模式,或者是開或關(guān)的狀態(tài)。如果你僅為按鈕指定了一個(gè)圖標(biāo),那么Qt會(huì)使用可視提示來表現(xiàn)按鈕不同的狀態(tài),例如按鈕失效時(shí)顯示灰色。工具欄按鈕通常以一排的形式顯示在工具欄上,對(duì)于一個(gè)有幾組工具欄的應(yīng)用,用戶可以隨便的到處移動(dòng)這些工具欄,工具欄差不多可以包含所有的窗體,例如QComboBoxes 和 QspinBoxes。2.3.8 旁述現(xiàn)代的應(yīng)用主要使用旁述的方式去解釋用戶接口的用法。Qt 提供了兩種旁述的方式:“提示欄”和“這是什么”幫助按鈕。“提示欄”是小的,通常是黃色的矩形,當(dāng)鼠標(biāo)在窗體的一些位置游動(dòng)時(shí)它就會(huì)自動(dòng)出現(xiàn)。它主要用于解釋工具欄按鈕,特別是那些缺少文字標(biāo)簽說明的工具欄按鈕的用途。下面就是如何設(shè)置一個(gè)“存盤”按鈕的提示的代碼。QToolTip::add( saveButton, Save )。 當(dāng)提示字符出現(xiàn)之后,你還可以在狀態(tài)欄顯示更詳細(xì)的文字說明。 對(duì)于一些沒有鼠標(biāo)的設(shè)備(例如那些使用觸點(diǎn)輸入的設(shè)備),就不會(huì)有鼠標(biāo)的光標(biāo)在窗體上進(jìn)行游動(dòng),這樣就不能激活提示欄。對(duì)于這些設(shè)備也許就需要使用“這是什么”幫助按鈕,或者使用一種姿態(tài)來表示輸入設(shè)備正在進(jìn)行游動(dòng),例如用按下或者握住的姿態(tài)來表示現(xiàn)在正在進(jìn)行游動(dòng)。 “這是什么”幫助按鈕和提示欄有些相似,只不過前者是要用戶點(diǎn)擊它才會(huì)顯示旁述。在小屏幕設(shè)備上,要想點(diǎn)擊“這是什么”幫助按鈕,具體的方法是,在靠近應(yīng)用的X 窗口的關(guān)閉按鈕“x”附近你會(huì)看到一個(gè)“?”符號(hào)的小按鈕,這個(gè)按鈕就是“這是什么”幫助按鈕。一般來說,“這是什么”幫助按鈕按下后要顯示的提示信息應(yīng)該比提示欄要多一些。下面是設(shè)置一個(gè)存盤按鈕的“這是什么”文本提示信息的方法: QWhatsThis::add( saveButton, Saves the cur
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1