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

正文內(nèi)容

qt教程-資料下載頁

2025-08-12 05:43本頁面

【導(dǎo)讀】Qt教程一——第一章:Hello,World!第一個程序是一個簡單的HelloWorld例子。它只包含你建立和運(yùn)行Qt應(yīng)用程序所需要的最。上面的圖片是這個程序的快照。這一行包含了QApplication類的定義。QApplication管理了各種各樣的應(yīng)用程序的廣泛資源,比如默認(rèn)的字體和光。哪個頭文件的說明。QPushButton是一個經(jīng)典的圖形用戶界面按鈕,用戶可以按下去,也可以放開。感,就像其它每一個QWidget。一個QPushButton可以顯示一段文本或者一個QPixmap。幾乎在使用Qt的所有情況下,main()只需要在把控制。轉(zhuǎn)交給Qt庫之前執(zhí)行一些初始化,然后Qt庫通過事件來向程序告知用戶的行為。argc是命令行變量的數(shù)量,argv是命令行變量的數(shù)組。不是Qt專有的,無論如何Qt需要處理這些變量。請注意,所有被Qt識別的命令行參數(shù)都會從argv中被移除。數(shù)指定0為它的父窗口,在這個父窗口中按鈕被定位)。創(chuàng)建一個Qt的makefile的最容易的方法是。提取大為不同,字體的載入和使用都已經(jīng)被高度優(yōu)化了。QFontMetrics來設(shè)置正確的大小。

  

【正文】 點(diǎn),滑塊就會就會注意到它。 QSlider 有一個相當(dāng)好的鍵盤接口,所以就會出現(xiàn)我們給 LCDRange添加的這一行。 行為 鍵盤現(xiàn)在可以做一些事了 ——方向鍵、 Home、 End、 PageUp 和 PageDown都可以作一些事情。 當(dāng)滑塊被操作, CannonFiled 會顯示新的角度值。如果重新定義大小, CannonField會得到盡可能多的空間。 在 8 位的 Windows 機(jī)器上顯示新的顏色會顫動的要命。下一章會處理這些的。 (請看 編譯 來學(xué)習(xí)如何創(chuàng)建一個 makefile 和連編應(yīng)用程序。) 練習(xí) 設(shè)置重新定義窗口的大小。如果你把它變窄或者變矮會發(fā)生什么? 如果你把 AlignTop 刪掉, LCDRange 的位置會發(fā)生什么變化?為什么? 如果你給左面的列一個非 零的拉伸因數(shù),當(dāng)你重新定義窗口大小時會發(fā)生什么? 不考慮 setFocus()調(diào)用。你更喜歡什么樣的行為? 試著在 QButton::setText()調(diào)用中把 “Quit”改為 “amp。Quit”。按鈕看起來變成什么樣子了?如果你在程序運(yùn)行的時候按下 Alt+Q會發(fā)生什么?(在少量鍵盤中時 Meta+Q。) 把 CannonField 的文本放到中間。 現(xiàn)在你可以進(jìn)行 第九章 了。 Qt 教程一 —— 第九章:你可以使用加農(nóng)炮了 在這個例子中我們開始畫一個藍(lán)色可愛的小加農(nóng)炮 .只 。 t9/ LCDRange 類定義。 t9/ LCDRange 類實(shí)現(xiàn)。 t9/ CannonField類定義。 t9/ CannonField類實(shí)現(xiàn)。 t9/ MyWidget 和 main。 一行一行地解說 t9/ void CannonField::paintEvent( QPaintEvent * ) { QPainter p( this )。 我們現(xiàn)在開始認(rèn)真地使用 QPainter。我們創(chuàng)建一個繪畫工具來操作這個窗口部件。 ( blue )。 當(dāng)一個 QPainter 填滿一個矩形、圓或者其它無論什么,它會用它的畫刷填滿這個圖形。這里我們把畫刷設(shè)置為藍(lán)色。(我們也可以使用一個調(diào)色板。) ( NoPen )。 并且 QPainter 使用畫筆來畫邊界。這里我們設(shè)置為 NoPen,就是說我們在邊界上什么都不畫,藍(lán)色畫刷會在我們畫的東西的邊界內(nèi)畫滿全部。 ( 0, rect().bottom() )。 QPainter::translate()函數(shù)轉(zhuǎn)化 QPainter 的坐標(biāo)系統(tǒng),比如,它通過偏移諒來移動。這里我們設(shè)置窗口部件的左下角為 (0,0)。 x和 y的方向沒有改變,比如,窗口部件中的所有 y坐標(biāo)現(xiàn)在都是負(fù)數(shù)(請看 坐標(biāo)系統(tǒng) 獲得有關(guān) Qt 的坐標(biāo)系統(tǒng)更多的信息。) ( QRect(35, 35, 70, 70), 0, 90*16 )。 drawPie()函數(shù)使用一個開始角度和弧長在一個指定的矩形內(nèi)畫一個餅型圖。角度的度量用的是一度的十六分之一。零度在三點(diǎn)的位置。畫的方向是順時針的。這里我們在窗口部件的左下角畫一個四分之一圓。這個餅圖被藍(lán)色充滿,并且沒有邊框。 ( ang )。 Qpainter::rotate()函數(shù)繞 QPainter 坐標(biāo)系統(tǒng)的初始位置旋轉(zhuǎn)它。旋轉(zhuǎn)的參數(shù)是一個按度數(shù)給定的 浮點(diǎn)數(shù) (不是一個像上面那樣給的十六分之一的度數(shù))并且是 順時針 ?逆時針 !的。這里我們 逆時針旋轉(zhuǎn) ang度數(shù)。 ( QRect(33, 4, 15, 8) )。 QPainter::drawRect()函數(shù)畫一個指定的矩形。這里我們畫的是加農(nóng)炮的炮筒。 很難想象當(dāng)坐標(biāo)系統(tǒng)被轉(zhuǎn)換之后(轉(zhuǎn)化、旋轉(zhuǎn)、縮放或者修剪)的繪畫結(jié)果。 在這種情況下,坐 標(biāo)系統(tǒng)先被轉(zhuǎn)化后被旋轉(zhuǎn)。如果矩形 QRect(33, 4, 15, 8)被畫到這個轉(zhuǎn)化后的坐標(biāo)系統(tǒng)中,它看起來會是這樣: 注意矩形被 CannonField 窗口部件的邊界省略了一部分。當(dāng)我們選裝坐標(biāo)系統(tǒng),以 60 度為例,矩形會以 (0,0)為圓心被旋轉(zhuǎn),也就是左下角,因為我們已經(jīng)轉(zhuǎn)化了坐標(biāo)系統(tǒng)。結(jié)果會是這樣: 我們做完了,除了我們還沒有解釋為什么 Windows 在這個時候沒有發(fā)抖。 int main( int argc, char **argv ) { QApplication::setColorSpec( QApplication::CustomColor )。 QApplication a( argc, argv )。 我們告訴 Qt 我們在這個程序中想使用一個不同的顏色分配策略。這里沒有單一正確的顏色分配策略。因為這個程序使用了不常用的黃色,但不是很多顏色, CustomColor 最好。這里有幾個其它的分配策略,你可以在 QApplication::setColorSpec()文檔中讀到它們。 通常情況下你可以忽略這一點(diǎn),因為默認(rèn)的是好的。偶爾一些使用常用顏色的應(yīng)用程序看起來 比較糟糕,因而改變分配策略通常會有所幫助。 行為 當(dāng)滑塊被操作的時候,所畫的加農(nóng)炮的角度會因此而變化。 Quit 中的字母 Q 現(xiàn)在有下劃線,并且 Alt+Q 會實(shí)現(xiàn)你所要的。如果你不知道這些,你一定是沒有做第八章中的練習(xí)。 你也要注意加農(nóng)炮的閃爍讓人很煩,特別是在一個比較慢的機(jī)器上。我們將會在下一章修正這一點(diǎn)。 (請看 編譯 來學(xué)習(xí)如何創(chuàng)建一個 makefile 和連 編應(yīng)用程序。) 練習(xí) 設(shè)置一個不同的畫筆代替 NoPen。設(shè)置一個調(diào)色板的畫刷。 試著用 “Qamp。uit”或者 “Quamp。it”作為按鈕的文本來提到 “amp。Quit”。發(fā)生了什么? 現(xiàn)在你可以進(jìn)行 第十章 了。 Qt 教程一 —— 第十章:像絲一樣滑 在這個例子中,我們介紹畫一個 pixmap 來除去閃爍。我們也會加入一個力量控制。 t10/ LCDRange 類定義。 t10/ LCDRange 類實(shí)現(xiàn)。 t10/ CannonField類定義。 t10/ CannonField類實(shí)現(xiàn)。 t10/ MyWidget 和 main。 一行一行地解說 t10/ CannonField 現(xiàn)在除了角度又多了一個力量值。 int angle() const { return ang。 } int force() const { return f。 } public slots: void setAngle( int degrees )。 void setForce( int newton )。 signals: void angleChanged( int )。 void forceChanged( int )。 力量的接口的實(shí)現(xiàn)和角度一樣。 private: QRect cannonRect() const。 我們把加農(nóng)炮封裝的矩形的定義放到了一個單獨(dú)的函數(shù)中。 int ang。 int f。 }。 力量被存儲到一個整數(shù) f 中。 t10/ include 我們包含了 QPixmap類定義。 CannonField::CannonField( QWidget *parent, const char *name ) : QWidget( parent, name ) { ang = 45。 f = 0。 setPalette( QPalette( QColor( 250, 250, 200) ) )。 } 力量( f)被初始化為 0。 void CannonField::setAngle( int degrees ) { if ( degrees 5 ) degrees = 5。 if ( degrees 70 ) degrees = 70。 if ( ang == degrees ) return。 ang = degrees。 repaint( cannonRect(), FALSE )。 emit angleChanged( ang )。 } 我們在 setAngle()函數(shù)中做了一個小的改變。它只重畫窗口部件中含有加農(nóng)炮的一小部分。 FALSE 參數(shù)說明在一個繪畫事件發(fā)送到窗口部件之前指定的矩形將不會被擦去。這將會使繪畫過程加速和平滑。 void CannonField::setForce( int newton ) { if ( newton 0 ) newton = 0。 if ( f == newton ) return。 f = newton。 emit forceChanged( f )。 } setForce()的實(shí)現(xiàn)和 setAngle()很相似。唯一的不同是因為我們不顯示力量值,我們不需要重畫窗口部件。 void CannonField::paintEvent( QPaintEvent *e ) { if ( !erect().intersects( cannonRect() ) ) return。 我們現(xiàn)在用只重畫需要刷新得部分來優(yōu)化繪畫事件。首先我們檢查是否不得不完全重畫任何事,我們返回是否不需要。 QRect cr = cannonRect()。 QPixmap pix( () )。 然后,我們創(chuàng)建一個臨時的 pixmap,我們用來不閃爍地畫。所有的繪畫操作都在這個 pixmap 中完成,并且之后只用一步操作來把這個 pixmap 畫到屏幕上。 這是不閃爍繪畫的本質(zhì):一次準(zhǔn)確地在每一個像素上畫。更少,你會得到繪畫錯誤。更多,你會得到閃爍。在這個例子中這個并不重要 ——當(dāng)代碼被寫時,仍然是很慢的機(jī)器導(dǎo)致閃爍,但以后不會再閃爍了。我們由于教育目的保留了這些代碼。 ( this, () )。 我們用這個 pixmap 來充滿這個窗口部件的背景。 QPainter p( amp。pix )。 ( blue )。 ( NoPen )。 ( 0, () 1 )。 ( QRect( 35,35, 70, 70 ), 0, 90*16 )。 ( ang )。 ( QRect(33, 4, 15, 8) )。 ()。 我們就像第九章中一樣畫,但是現(xiàn)在我們是在 pixmap 上畫。 在這一點(diǎn)上,我們有一個繪畫工具變量和一個 pixmap 看起來相當(dāng)正確,但是我們還沒有在屏幕上畫呢。 ( this )。 ( (), pix )。 所以我們在 CannonField 上面打開繪圖工具并在這之后畫這個 pixmap。 這就是全部了。在頂部和底部各有一對線,并且這個代碼是 100%不閃爍的。 QRect CannonField::cannonRect() const { QRect r( 0, 0, 50, 50 )。 ( rect().bottomLeft() )。 return r。 } 這個函數(shù)返回一個在窗口部件坐標(biāo)中封裝加農(nóng)炮的矩形。首先我們創(chuàng)建一個50*50 大小的矩形,然后移動它,使它的左下角和窗口部件自己的左下角相等。 QWidget::rect()函數(shù)在窗口部件自己的坐標(biāo)(左上角是 0,0)中返回窗口部件封裝的矩形。 t10/ MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { 構(gòu)造函數(shù)也是一樣,但是已經(jīng)加入了一些東西。 LCDRange *force = new LCDRange( this, force )。 forcesetRange( 10, 50 )。 我們加入了第二個 LCDRange,用來設(shè)置力量。 connect( force, SIGNAL(valueChanged(
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1