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

正文內(nèi)容

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

2025-05-04 06:33 本頁面
 

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