自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

QT學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴

移動(dòng)開(kāi)發(fā)
本文介紹的是QT學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴,里面記錄了學(xué)習(xí)Qt的一切細(xì)節(jié)記錄,QT使創(chuàng)建獨(dú)立于平臺(tái)的數(shù)據(jù)庫(kù)應(yīng)用成為可能。先來(lái)看本文內(nèi)容。

QT學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴是本文要介紹的內(nèi)容,里面記錄了學(xué)習(xí)Qt的一切細(xì)節(jié)記錄,QT使創(chuàng)建獨(dú)立于平臺(tái)的數(shù)據(jù)庫(kù)應(yīng)用成為可能。先來(lái)看本文內(nèi)容。

QT的內(nèi)建驅(qū)動(dòng)支持Oracle,Microsoft SQL Server,Sybase Adaptive Server,IBM DB2,PostgreSQL,MySQL,BorlandInterbase,SQLite,以及各種ODBC的數(shù)據(jù)庫(kù)。QT數(shù)據(jù)庫(kù)功能完全集成到了QT設(shè)計(jì)器中,能提供數(shù)據(jù)庫(kù)的生動(dòng)的預(yù)覽。QT包括專門的數(shù)據(jù)庫(kù)組件,并且任何內(nèi)建的或自定義的組件都可以數(shù)據(jù)相關(guān);

QT普遍使用Unicode并且有良好的國(guó)際化支持。QT包括QT Linguist等工具可用來(lái)協(xié)助翻譯。應(yīng)用程序可以很容易地使用和混合使用用阿拉伯語(yǔ),漢語(yǔ),英語(yǔ),希伯來(lái)語(yǔ),日語(yǔ),俄語(yǔ)以及其他Unicode所支持的語(yǔ)言所寫成的文本;QT包括許多專用領(lǐng)域的類。比如,QT擁有包括SAX、DOM語(yǔ)法分析器的XML模塊。使用QT的STL兼容的集合類能夠把對(duì)象儲(chǔ)存在內(nèi)存里面。QT的I/O類和網(wǎng)絡(luò)類提供使用標(biāo)準(zhǔn)協(xié)議來(lái)處理本地和遠(yuǎn)程文件的能力

窗口部件是QWidget或其子類的實(shí)例,自定義的則通過(guò)子類化得來(lái)使用QValidator及其子類可以約束或驗(yàn)證QComboBox,QLineEdit和QSpinBox??梢允褂谜齽t表達(dá)式來(lái)進(jìn)行驗(yàn)證

在GUI應(yīng)用程序中含有QMainWindow,QMenuBar和QToolBar。在對(duì)話框中含有QMessageBox,QFileDialog,QWizard和其他對(duì)話框。布局中含有QSplitter,2D/3D圖形中含有QCanvas和QGLWidget

QT學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴

 

  1. BankAccount x,y;  
  2. connect(&x,SIGNAL(balanceChanged(int)),&y,SLOT(setBalance(int)));  
  3. x.setBalance(2450); 

當(dāng)x的balance被設(shè)置為2450,balanceChanged()信號(hào)被發(fā)射。這個(gè)信號(hào)被y的setBalance()槽接收,將y的balance也設(shè)置為2450

/*

如果一個(gè)Quit按鈕的clicked()信號(hào)被連接到一個(gè)程序的quit()槽,用戶就可以點(diǎn)擊Quit來(lái)結(jié)束這個(gè)程序。代碼可以這樣寫

connect(button.SIGNAL(clicked()),qApp,SLOT(quit()));

在QT程序執(zhí)行期間,連接可以隨時(shí)增加或撤消。

*/

菜單:PoP

每個(gè)菜單項(xiàng)有一個(gè)圖標(biāo)、一個(gè)復(fù)選框和一個(gè)快捷鍵。菜單項(xiàng)通常會(huì)響應(yīng)動(dòng)作(比如保存)。分隔符項(xiàng)目顯示為一條線,用來(lái)可視化地分組相關(guān)的動(dòng)作。

這是一個(gè)創(chuàng)建了New,Open,Exit菜單項(xiàng)的文件菜單的例子:

  1. QPopupMenu *fileMenu=new QPopupMenu(this);  
  2. fileMenu->insertItem("&New",this,SLOT(newFile()),CTRL+Key_N);  
  3. fileMenu->insertItem("&Open...",this,SLOT(open()),CTRL+Key_O);  
  4. fileMenu->insertSeparator();  
  5. fileMenu->insertItem("E&xit",qApp,SLOT(quit()),CTRL+Key_Q); 

MenuBar:

QmenuBar實(shí)現(xiàn)了一個(gè)菜單欄。它自動(dòng)局在其父部件(如一個(gè)QMainWindow)的頂端,如果

父窗口不夠?qū)捑蜁?huì)自動(dòng)地分割而跨越多行。QT內(nèi)置的布局管理器會(huì)考慮各種菜單欄。在Macintosh上面,菜單欄會(huì)如期地出現(xiàn)在屏幕的頂部。

這里展示了怎樣創(chuàng)建一個(gè)含有File,Edit和Help菜單的菜單欄:

  1. QMenuBar *bar=new QMenuBar(this);  
  2. bar->insertItem("&File",fileMenu);  
  3. bar->insertItem("&Edit",editMenu);  
  4. bar->insertItem("&Help",helpMenu); 

QT的菜單系統(tǒng)非常靈活。菜單項(xiàng)能夠動(dòng)態(tài)地啟用,禁用,增加或刪除。通過(guò)子類化QCustomMenuItem,可以創(chuàng)建自定義外觀和行為菜單項(xiàng)。

下面的代碼實(shí)現(xiàn)了一個(gè)“Save”菜單項(xiàng),一個(gè)“Save”工具欄按鈕和一個(gè)“Save”快捷鍵,并且均有氣球式幫助:

  1. QAction *saveAct=new QAction("Save",saveIcon,"&Save",CTRL+Key_S,this);  
  2. connect(saveAct,SIGNAL(activated()),this,SLOT(save()));  
  3. saveAct->setWhatsThis("Saves the current file.");  
  4. saveAct->addTo(fileMenu);  
  5. saveAct->addTo(toolbar); 

設(shè)置:

使用QSettings類可以很容易地將用戶設(shè)置和其他程序設(shè)置保存到磁盤上。在Windows中,QSettings利用系統(tǒng)注冊(cè)表保存設(shè)置;在其他平臺(tái)上,設(shè)置以文本文件形式保存。

可以利用一個(gè)鍵來(lái)保存設(shè)置。例如,/SoftwareInc/Zoomer/RecentFiles鍵可能包括一個(gè)最近使用文件的列表。布爾值,數(shù)字,Unicode字符串以及Unicode字符串列表都可以保存

#p#

多線程

GUI程序通常使用多線程:一個(gè)線程保持用戶界面的響應(yīng),其他一個(gè)或多個(gè)線程做著耗時(shí)的活動(dòng)比如讀取大文件或進(jìn)行復(fù)雜的運(yùn)算。QT可以配置為支持多線程并且提供了六個(gè)線程相關(guān)類:QThread,,QThreadStorage,QMutex,QMutexLocker,QSemaphore和QWaitCondition

2D

1.圖象

Qimage類提供了幾種格式的圖象的輸入、輸出和處理,包括BMP、GIF、JPEG、MNG、PNG、PNM、XBM和XPM

2.圖標(biāo)按鈕

許多QT內(nèi)建的窗口部件能夠顯示圖象,比如按鈕、標(biāo)簽、菜單項(xiàng)等。這里是怎樣在按鈕上顯示一個(gè)圖標(biāo)的方法:

  1. QPushButton *button=new QPushButton("&Find Address",parent);  
  2. button->setIconSet(QIconSet(QImage("find.bmp"))); 

Qt學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴

QImage支持1位,8位和32位色深的圖象。程序員可以處理象素和調(diào)色板數(shù)據(jù),應(yīng)用轉(zhuǎn)換(比如旋轉(zhuǎn)與裁剪),如果需要的話也可降低色深。為了達(dá)到某些目的(比如透明度和alpha混合),程序可以在QImage中將“alpha通道”和顏色數(shù)據(jù)保存在一起

繪畫

QPainter為繪圖部件提供了一個(gè)獨(dú)立于平臺(tái)的API。它提供各種原始的或高級(jí)的功能比如轉(zhuǎn)換和剪切。所有QT內(nèi)建部件使用QPainter繪制它們自身。程序員在實(shí)現(xiàn)自定義部件的時(shí)候也常常使用

QPainter。Qpainter提供了一些標(biāo)準(zhǔn)函數(shù)來(lái)繪制點(diǎn),直線,多邊形,橢圓,弧線和貝塞爾曲線等。下面的命令繪制了一個(gè)120×60的矩形,左上角位于(25,15),有著2個(gè)象素寬的紅色虛線輪廓:

  1. painter.setPen(QPen(red,2,DashLine));  
  2. painter.drawRect(25,15,120,60); 

QPainter支持使用矩形,多邊形,橢圓和位圖組成的區(qū)域的剪切。復(fù)雜區(qū)域的產(chǎn)生可以通過(guò)相并,相交,相減和簡(jiǎn)單區(qū)域的異或產(chǎn)生。剪切可以用來(lái)減小重繪時(shí)的抖動(dòng)。

QColor類存儲(chǔ)了一種用RGB/HSV三基色或一個(gè)名字(如“skyblue”)表示的顏色。QT程序員能

夠描述任意一個(gè)24位顏色;QT從系統(tǒng)調(diào)色板中自動(dòng)地為程序分配所要求的顏色,在顏色受限的顯示器上則為相似的顏色。

#p#

繪圖設(shè)備

Qpainter可以在任意“繪圖設(shè)備”上操作。在任何被支持的設(shè)備上繪畫所需的代碼是相同的,設(shè)備無(wú)關(guān)的。QT支持下列繪畫設(shè)備:
一個(gè)QPixmap本質(zhì)上是個(gè)“屏幕外的部件”。圖形可以先畫在一個(gè)QPixmap上,然后塊傳送到Qwidget以減小抖動(dòng)。這種技術(shù)就叫“雙緩沖”。

一個(gè)QPicture是一個(gè)可以完美地縮放,旋轉(zhuǎn)和裁剪的矢量圖。QPictrue類存儲(chǔ)的圖象是一系列繪圖命令而不是一些象素的數(shù)據(jù)。它支持SVG(W3C's Scalable Vector Graphics)XML格式的輸入與輸出。

一個(gè)QPrinter表現(xiàn)為一臺(tái)物理打印機(jī)。在Windows中,繪畫命令被送到Windows打印引擎來(lái)使用已安裝的驅(qū)動(dòng)。在Unix中,輸出PostScript并送往打印守護(hù)進(jìn)程。

一個(gè)QWidget也是一個(gè)繪畫設(shè)備,如同前面見(jiàn)過(guò)的條形圖。

畫布

QCanvas提供一個(gè)2D圖形的高級(jí)接口。它能夠處理大量的畫布項(xiàng)目來(lái)描述直線,矩形,橢圓,文本,位圖及動(dòng)畫精靈等。畫布項(xiàng)目很容易做成交互式的。

畫布項(xiàng)目是QCanvasItem子類的實(shí)例。它們比窗口部件輕巧得多,能很快的移動(dòng),隱藏和顯示。QCanvas有效地支持沖突檢測(cè),還能羅列出指定區(qū)域中的所有畫布項(xiàng)目。QCanvasItem可以被子類化,用以提供自定義的項(xiàng)目類型或擴(kuò)充已有類型的功能。

Qcanvas對(duì)象使用QCanvasView類渲染。許多QCanvasView對(duì)象可以顯示同一個(gè)QCanvas,但轉(zhuǎn)化,縮放,旋轉(zhuǎn)和裁剪各不相同

3D圖形

OpenGL是一個(gè)用來(lái)渲染3D圖形的標(biāo)準(zhǔn)API。QT開(kāi)發(fā)者可以使用OpenGL在他們的程序中繪制3D圖形。這寫操作是通過(guò)子類化QGLWidget--QWidget的一個(gè)子類來(lái)完成的,使用標(biāo)準(zhǔn)的OpenGL函數(shù)而不是QPainter。Qt的OpenGL模塊在Windows、X11和Macintosh上是可用的,使用的是系統(tǒng)的OpenGL庫(kù)(或Mesa)。Qt開(kāi)發(fā)者能夠設(shè)置一個(gè)OpenGL渲染的顯示格式:?jiǎn)尉彌_還是雙緩沖、緩沖深度、RGBA模式還是顏色索引模式、alpha通道、裝飾層等。在顏色索引模式下,他們還可以手動(dòng)設(shè)置顏色映射表。當(dāng)使用QT時(shí),開(kāi)發(fā)者是在使用純粹的OpenGL。QT提供兩個(gè)方便的函數(shù),qglClearColor()和qglColor(),能接受一個(gè)QColor參數(shù)并在任意模式下工作。

數(shù)據(jù)庫(kù)

QT的SQL模塊簡(jiǎn)化了各種平臺(tái)上GUI數(shù)據(jù)庫(kù)程序的創(chuàng)建。程序員可以很容易地執(zhí)行SQL語(yǔ)句,使用專用的數(shù)據(jù)庫(kù)部件,或者創(chuàng)建數(shù)據(jù)相關(guān)的部件。Qt的SQL模塊提供了一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的跨平臺(tái)接口。QT包括一些驅(qū)動(dòng),可以支持Oracle、Microsoft SQL Server、Sybase Adaptive Server、IBM DB2、PostgreSQL、MySQL、Borland Interbase、SQLite和ODBC。這些驅(qū)動(dòng)可以在所有QT所支持的平臺(tái)上工作并且?guī)於际强捎玫?。程序能夠同時(shí)使用多種驅(qū)動(dòng)訪問(wèn)多種數(shù)據(jù)庫(kù)。

程序員可以很容易地執(zhí)行SQL語(yǔ)句。QT也提供一個(gè)程序員可以用來(lái)自動(dòng)產(chǎn)生合適的SQL語(yǔ)句的高級(jí)C++接口。

任何QT部件(預(yù)定義的或自定義的)都可以做成數(shù)據(jù)相關(guān)的。QT也包括一些便利的數(shù)據(jù)庫(kù)專用部件,使得以窗體或表格形式顯示數(shù)據(jù)記錄的對(duì)話框或窗口創(chuàng)建起來(lái)更加簡(jiǎn)單。數(shù)據(jù)相關(guān)的部件自動(dòng)地支持瀏覽,更新和刪除記錄。大多數(shù)數(shù)據(jù)庫(kù)設(shè)計(jì)要求新紀(jì)錄具有唯一的QT猜測(cè)不到的關(guān)鍵字,所以插入操作通常需要書寫一小段代碼。程序員很容易就可以迫使用戶確認(rèn)一些操作,比如刪除。QT的SQL模塊完全集成到了QT設(shè)計(jì)器中,提供了一些模板和向?qū)沟?strong>數(shù)據(jù)庫(kù)的創(chuàng)建盡可能地快。向?qū)軌蚴褂脤?dǎo)航按鈕來(lái)創(chuàng)建和窗體,并且?guī)в懈?,插入和刪除按鈕?;?strong>QT SQL模塊的便利性,創(chuàng)建能夠使用外鍵查看,能顯示概要-細(xì)節(jié)關(guān)系并且支持?jǐn)?shù)據(jù)挖掘的數(shù)據(jù)庫(kù)程序變得非常簡(jiǎn)捷。

數(shù)據(jù)相關(guān)的窗口部件

QDataTable是一個(gè)顯示QSqlCursor結(jié)果集記錄的QTable。和QTable一樣,QDataTable支持在適當(dāng)?shù)牡胤骄庉嫛Mㄟ^(guò)設(shè)置QDataTable的確認(rèn)屬性,程序員可以迫使用戶確認(rèn)所有或已選擇的改變(比如刪除)。為每種數(shù)據(jù)類型選擇編輯器時(shí)要依賴于具體的數(shù)據(jù)類型。例如,QLineEdit適用于CHAR域,而QSpinBox適用于INTEGER域。通過(guò)對(duì)基本表創(chuàng)建一個(gè)屬性映射,程序員可以覆蓋其默認(rèn)屬性,使其可以與程序員喜歡的編輯器部件類型的域(列)相配。

不必書寫任何代碼就可以更新或刪除記錄。插入操作需要一些代碼是由于大多數(shù)數(shù)據(jù)庫(kù)設(shè)計(jì)要求將要?jiǎng)?chuàng)建的新紀(jì)錄有唯一的碼。通過(guò)在一個(gè)與QDataTable::beforeInsert()信號(hào)相連的槽中生成碼,可以很容易完成這件事。

#p#

風(fēng)格與主題

QT自動(dòng)使用本機(jī)的風(fēng)格作為程序外觀。QT程序會(huì)尊重用戶在顏色、字體和聲音等方面的喜好。而QT程序員可以自由地使用各種提供的風(fēng)格,也可以覆蓋任意首選項(xiàng)。使用QT強(qiáng)大的風(fēng)格引擎程序員可以修改已有的風(fēng)格或?qū)崿F(xiàn)自己的風(fēng)格。

一種風(fēng)格實(shí)現(xiàn)了一個(gè)特定平臺(tái)上用戶界面的外觀。一種風(fēng)格是一個(gè)實(shí)現(xiàn)了諸如“繪制框架”、“繪制按鈕”等函數(shù)的QStyle子類。QT以最大的速度和靈活性來(lái)完成窗口部件本身的繪制

布局

布局提供了一個(gè)強(qiáng)大而靈活的選擇來(lái)使用固定的位置和大小。布局把程序員從程序執(zhí)行的大小和位置的計(jì)算中解放出來(lái),并且提供了自動(dòng)調(diào)整的能力以適合用戶的屏幕、語(yǔ)言和字體。

QT提供了布局管理器來(lái)組織父部件區(qū)域中的子部件。它們自動(dòng)調(diào)整子部件的大小和位置,最小大小以及頂級(jí)部件的尺寸,并且在內(nèi)容或字體改變時(shí)重新定位。QT通過(guò)布局管理器對(duì)部件布局進(jìn)行了優(yōu)化。
內(nèi)建布局管理器

QT的內(nèi)建布局管理器有QHBoxLayout,QVBoxLayout和QGridLayout。

QHBoxLayout將其管理的部件組織在一個(gè)從左到右的水平行上。

QVBoxLayout將其管理的部件組織在一個(gè)從上到下的垂直列上。

QGridLayout將其管理的部件組織在一些網(wǎng)格單元中;不見(jiàn)可以橫跨多個(gè)單元。

自定義布局

通過(guò)子類化QLayout開(kāi)發(fā)者可以定義自己的布局管理器。和QT一起提供的customlayout樣例展示了三個(gè)自定義布局管理器:BorderLayout、CardLayout和SimpleFlow,程序員可以使用并修改它們。
QT還包括QSplitter,一個(gè)最終用戶可以操縱的分離器。某些情況下,QSplitter可能比布局管理器更為可取。

為了完全的控制,通過(guò)重新實(shí)現(xiàn)每個(gè)子部件的QWidget::resizeEvent()并調(diào)用QWidget::setGeometry(),就可以在一個(gè)部件中手動(dòng)實(shí)現(xiàn)布局。

事件

應(yīng)用程序?qū)ο笠?strong>QT事件的方式接收系統(tǒng)消息。應(yīng)用程序能夠監(jiān)視、過(guò)濾并響應(yīng)不同顆粒度的事件。在QT中,一個(gè)事件是一個(gè)繼承QEvent的對(duì)象。時(shí)間被傳遞到QObject對(duì)象以便響應(yīng)它們。程序員能夠在應(yīng)用程序水平和對(duì)象水平上監(jiān)視、過(guò)濾事件。

事件的產(chǎn)生

多數(shù)事件是窗口系統(tǒng)和通知部件產(chǎn)生的,例如,一個(gè)鍵被按下,一個(gè)鼠標(biāo)按鈕被點(diǎn)擊,或者程序窗口被改變大小。可以計(jì)劃性地向?qū)ο蟀l(fā)送模擬事件。存在超過(guò)50種的事件,最常用到的有MouseButtonPress、MouseButtonRelease、MouseButtonDblClick、Wheel、 KeyPress、KeyRelease、Paint、Resize和Close。開(kāi)發(fā)者可以增加與內(nèi)建類型行為類似的事件類型。

只知道一個(gè)鍵被按下或一個(gè)鼠標(biāo)按鈕被釋放往往是不夠的。接收者還必須知道諸如哪個(gè)鍵被按下,哪個(gè)鼠標(biāo)按鈕被釋放,鼠標(biāo)的位置在哪里等信息。這些附加信息在QEvent的子類中是可用的,比如QMouseEvent、QKeyEvent、QPaintEvent、QResizeEvent和QCloseEvent

事件的傳遞

QT通過(guò)調(diào)用虛函數(shù)QObject::event()傳遞事件。為求方便,QWidget::event()把一些最常見(jiàn)的事件傳遞給了精巧的處理器,比如QWidget::mouseReleaseEvent()和QWidget::keyPressEvent()。在寫自己的部件或特殊化已有的部件時(shí),開(kāi)發(fā)者可以很容易重新實(shí)現(xiàn)這些處理器

文件輸入/輸出

QT為多種平臺(tái)提供了類來(lái)完成高級(jí)的輸入/輸出。QT的QTextStream類有和標(biāo)準(zhǔn)類相似的接口,并且支持QTextCodec提供的編碼。QDataStream類用于將基礎(chǔ)C++類型和許多QT的類型串行化微獨(dú)立于平臺(tái)的二進(jìn)制格式。

XML

QT的XML模塊提供了SAX和DOM解析器,它們都可以讀取合乎語(yǔ)法的XML并且是無(wú)驗(yàn)證的。

SAX(Simple API for XML)的實(shí)現(xiàn)模仿了SAX2 Java實(shí)現(xiàn)的設(shè)計(jì)并具有相適應(yīng)的命名規(guī)則。第二級(jí)DOM(Document Object Model)的實(shí)現(xiàn)遵照了W3C的建議并且支持命名空間。

許多QT程序使用XML格式來(lái)保存它們的永久數(shù)據(jù)。SAX解析器用來(lái)增量式地讀取數(shù)據(jù),對(duì)于那些解析需求較低或者包含在超大型文件中的應(yīng)用程序非常合適。DOM解析器讀取整個(gè)文件并在內(nèi)存中生成一棵可隨意遍歷樹(shù)

進(jìn)程間通信

QProcess用來(lái)啟動(dòng)一個(gè)外部程序并且用一種平臺(tái)無(wú)關(guān)的方式來(lái)與它們通信。通信是通過(guò)寫入外部程序的標(biāo)準(zhǔn)輸入和讀取它們的標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤來(lái)完成的。

QProcess以異步方式工作,以發(fā)射信號(hào)的方式來(lái)報(bào)告數(shù)據(jù)的可用性。QT程序連接到這些信號(hào)來(lái)取回并處理數(shù)據(jù),也可以發(fā)送數(shù)據(jù)到這些外部程序來(lái)表示響應(yīng)

網(wǎng)絡(luò)

QT提供了多種平臺(tái)的接口來(lái)編寫TCP/IP客戶端和服務(wù)器,支持IPv4和IPv6。

QSocket類提供了一個(gè)異步帶緩沖的TCP連接。QSocket是一個(gè)QIODevice,使得在一個(gè)套接字上面使用QTextStream和QDataStream變得非常容易

集合類

集合類用來(lái)在內(nèi)存中存儲(chǔ)項(xiàng)目組。QT提供了一系列與標(biāo)準(zhǔn)模板庫(kù)(STL)兼容的類,無(wú)論編譯器是否支持STL都可以工作。

應(yīng)用程序常常需要管理內(nèi)存中的項(xiàng)目,例如成組的圖象、部件或自定義的部件。許多編譯器支持STL,STL提供了現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)項(xiàng)目。QT提供了線性表、棧、隊(duì)列和STL語(yǔ)法的字典。QT的集合類能與STL和非STL編譯器協(xié)同使用。

QT豐富而方便的集合類(“容器”)和相關(guān)的迭代器在內(nèi)部被大量使用,并且成為了QT API的一部分。QT的容器使用“私有類”和“隱含共享”兩種技術(shù)來(lái)優(yōu)化速度和內(nèi)存效率。程序員也可以在支持的平臺(tái)上使用STL容器,代價(jià)是是去了QT的優(yōu)化。

模板類常常會(huì)顯著增加可執(zhí)行文件的大小,因?yàn)榫幾g器會(huì)為各種特殊類型生成相同的代碼。QT的模板集合類減少了代碼的膨脹,因?yàn)樗鼈冎皇欠悄0逅接蓄惿系囊粋€(gè)薄層

插件和動(dòng)態(tài)鏈接庫(kù)

QT能夠訪問(wèn)動(dòng)態(tài)鏈接庫(kù)中與平臺(tái)無(wú)關(guān)的函數(shù)。QT還支持插件,插件允許開(kāi)發(fā)者以獨(dú)立組件方式創(chuàng)建、分發(fā)編解碼器、數(shù)據(jù)庫(kù)驅(qū)動(dòng)、圖象格式轉(zhuǎn)換器、風(fēng)格和自定義窗口部件

1.插件

QT便解碼器、圖象格式轉(zhuǎn)換器、風(fēng)格或者自定義窗口部件轉(zhuǎn)換為插件是通過(guò)子類化合適的插件基類,實(shí)現(xiàn)一些函數(shù)并增加一個(gè)宏來(lái)完成的

2.動(dòng)態(tài)鏈接庫(kù)

QLibrary類提供了各種平臺(tái)的動(dòng)態(tài)庫(kù)裝入,這是一種比拘束得多的構(gòu)建時(shí)連接強(qiáng)大得多的機(jī)制

小結(jié):QT學(xué)習(xí)筆記點(diǎn)點(diǎn)滴滴的內(nèi)容介紹完了,這篇文章可以說(shuō)是很詳細(xì)了,在我們學(xué)習(xí)QT的過(guò)程中會(huì)碰到的每個(gè)問(wèn)題,最后希望本文對(duì)對(duì)你有所幫助吧!??!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-02 14:35:11

IOS應(yīng)用

2011-05-05 13:51:45

LINQ

2009-08-26 18:02:15

C#多線程

2010-06-08 17:52:38

IPv6協(xié)議技術(shù)

2012-06-21 09:32:53

程序員

2012-02-15 10:05:02

Linux命令行

2019-05-20 10:15:02

Windows 10Windows XPWindows

2009-11-30 14:23:05

阿爾法路由器GR55

2010-01-18 14:41:45

交換機(jī)配置經(jīng)驗(yàn)

2024-03-06 09:29:13

BEV自動(dòng)駕駛

2012-12-12 14:05:37

手機(jī)打印機(jī)

2011-08-04 14:58:37

Objective-C Cocoa NSString

2013-03-28 09:45:34

iOS學(xué)習(xí)筆記總結(jié)整理

2013-07-18 09:42:47

創(chuàng)業(yè)總結(jié)

2020-11-19 08:14:07

jQuery

2011-08-31 10:34:47

JavaJava備忘錄

2016-03-07 14:20:13

藍(lán)凌

2013-07-17 13:03:19

創(chuàng)業(yè)者創(chuàng)業(yè)總結(jié)

2011-10-08 16:14:08

Java備忘錄
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)