QT框架的C++編程_第1頁
QT框架的C++編程_第2頁
QT框架的C++編程_第3頁
QT框架的C++編程_第4頁
QT框架的C++編程_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1,Qt概述1,Qt信息Qt是Trolltech的產(chǎn)品。Qt是多平臺c圖形用戶界面應用框架。為應用程序開發(fā)人員提供構建圖形用戶界面應用程序所需的所有功能。Qt完全面向對象,可輕松擴展,允許實際的組件編程。從1996年初開始,Qt已成為全球數(shù)千個成功應用程序的基礎。Qt也是受歡迎的Linux桌面環(huán)境KDE的基礎。(KDE是所有主要Linux發(fā)行版的標準組件)Qt支持以下平臺:MS/Windows-95、98、NT 4.0、ME和2000Unix/X11-Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和許多其他X11平臺Maci

2、ntosh-Mac OS X嵌入式-支持幀緩沖區(qū)的Linux平臺。2、Qt版本信息Qt分發(fā)到其他版本:Qt enterprise和Qt professional:適用于商業(yè)軟件開發(fā)。提供現(xiàn)有商業(yè)軟件發(fā)行版,并提供免費升級和技術支持服務。企業(yè)版比專業(yè)版具有更多的擴展模塊。Qt自由表單:Qt僅為自由和開放源代碼軟件開發(fā)提供的Unix/X11版本。Q public license和GNU general public license下免費提供。Qt/embedded free edition:是Qt為自由軟件開發(fā)提供的嵌入式版本。GNU general public license免費提供。下表說明

3、了Windows環(huán)境中Qt的差異。(Qt僅提供適用于Windows的professional和enterprise,但是自由版本的Qt仍然可以在Windows環(huán)境中使用。)配置模塊自由版專業(yè)版企業(yè)版Qt的基本模塊(工具、核心、窗口小部件、對話框)與平臺無關的Qt圖形用戶界面工具包和應用程序類xxxQt設計器視覺Qt圖形用戶界面生成器xxx圖標視圖模塊多個圖形用戶交互的可視化。xx工作區(qū)模塊多文檔接口(MDI)支持xxOpenGL 3d圖形模塊與Qt集成OpenGLx網(wǎng)絡模塊與某些套接字、TCP、FTP和異步DNS查詢無關的類x畫布模塊二維圖形區(qū)域,針對可視化、圖表和其他用途進行了優(yōu)化x表格模組

4、靈活、可編輯的表單/電子表格xXML模塊通過SAX接口和DOM級別1的XML解析器xSQL模塊SQL數(shù)據(jù)庫訪問類x3,Qt的配置Qt提供了一組相當廣泛的c類庫,并包含一些命令行和圖形界面工具,可以有效地用于加速開發(fā)過程。Qt設計器:Qt設計器。用于可視化應用程序界面。Qt linguist: Qt語言學家。用于翻譯應用程序。提供多種語言的支持。Qmake:使用此工具可以從簡單的獨立于平臺的工程文件中生成編譯所需的Makefile。Qt Assistant: Qt的幫助文件。類似于MSDN??焖僬业剿璧膸椭?。Moc:元對象編譯器。Uic:用戶界面編譯器。編譯程序時自動調用ui_*。通過h文件生

5、成應用程序界面。Qembed:例如,將圖片轉換為c代碼。4、安裝Qt安裝過程因Qt平臺而異。在Windows環(huán)境中安裝Qt之前,必須先安裝MinGW。MinGW,即Minimalist GNU For Windows。頭文件和端口庫的集合,人們可以使用GNU Compiler C(GCC)生成Windows32程序,而無需第三方動態(tài)鏈接庫。在默認層,MinGW是Microsoft的標準c運行時庫(MSVCRT),允許控制臺模式的程序在所有NT OS上有效,在所有Windows 95發(fā)行版及更高版本的Windows OS上有效。DLL)的一組包含文件和端口庫,通過默認運行時間,您可以使用使用GC

6、C寫控制臺模式的美國標準組織for America(ANSI)程序,使用Microsoft提供的c運行時間擴展。Windows32 API中沒有此功能。以下組件是w32api包,它是一組可以使用Windows32 API的包含和端口庫:具有足夠的權限,可以在默認運行時使用CRT(C Runtime)和Windows32 API功能。實際上,MinGW不是C/C編譯器,而是GNU工具欄。MinGW除了包含GNU編譯器集合(GCC)外,還包含其他GNU程序開發(fā)工具,如gawk bison等。如果安裝MinGW,然后安裝Qt并更改Windows系統(tǒng)的環(huán)境變量,則可以在Windows環(huán)境中使用Qt。要

7、在VC環(huán)境中使用QT,必須進行其他編譯和設置,或者下載僅VC的Qt版本。有關此信息,請參閱附錄。第二,開始學習Qt1,Hello,Qt!我們用很簡單的Qt程序開始Qt學習。您可以先查看分析代碼行,了解如何編譯和運行程序。1 #include2 #include3 int main (int argc,char *argv )4 .5 QApplication app (argc、argv);6 q label * label=new qlabel( hello Qt!);7 label-show();8 return app。exec();9第1行和第2行包含兩個類的定義:QApplicati

8、on和QLabel。每個Qt類都有同名的頭文件。頭文件包含此類的定義。因此,如果在程序中使用了類對象,則必須在程序中包含此頭文件。第三行是程序的入口。幾乎在所有情況下,main()函數(shù)都必須先執(zhí)行初始化,然后才能將控制權傳遞給Qt庫。然后,Qt庫通過事件通知用戶動作。Argc是命令行變量的數(shù)量,argv是命令行變量的數(shù)組。這是C/C特征。Qt不特定于Qt。無論如何,Qt必須處理這些變量第5行定義QApplication對象App。QApplication管理各種應用程序(如默認字體和光標)的廣泛資源。要創(chuàng)建App,需要argc和argv,因為Qt支持某些自身的命令行參數(shù)。QApplicatio

9、n對象必須用于使用Qt的所有應用程序,并且必須在使用Qt的窗口系統(tǒng)部件之前創(chuàng)建QApplication對象。其中App創(chuàng)建并處理隨后的命令行變量(例如,x窗口下的-display)。識別為Qt的所有命令行參數(shù)都將從argv中刪除。因此,argc也減少了。第6行是“Hello,Qt!”創(chuàng)建了顯示的QLabel窗口小部件(widget),因此也可以打印部分。在Qt和Unix術語中,窗口組件是用戶界面中的可見元素,在Windows術語中,它相當于將“控制器”添加到“容器”中?!鞍粹o”(Button)、“菜單”(menu)、“滾動條”(scroll bars)和“框架”(frame)都是窗口構件的示例

10、。窗口部件可以包含其他窗口部件。例如,應用程序界面通常是包含QMenuBar、一些QToolBar、QStatusBar和一些其他部件的窗口。大多數(shù)應用程序都使用QMainWindow或QDialog作為程序界面,但是Qt可以使任何窗口組件成為窗口。在此示例中,QLabel窗口部件用作應用程序的主窗口。你看到我們行使我們制作的QLabel。創(chuàng)建窗口部件時始終隱藏,并且必須通過調用show()顯示。此功能允許您定制以在顯示這些窗口部件之前不發(fā)生閃爍。第8行是main()將控制權移交給Qt。這里,程序進入事件循環(huán)。事件周期是程序等待用戶操作(例如鼠標按鍵或鍵盤)的待機模式。用戶的動作生成程序可以響

11、應的事件(也稱為“消息”)。程序對這些事件的反應通常是執(zhí)行一個或多個函數(shù)。為了簡單起見,未通過在main()函數(shù)的末尾調用delete來刪除QLabel對象。像這樣的小程序在退出時釋放程序在操作系統(tǒng)中占用的內存堆,因此這種內存泄漏是無害的。讓我編譯這個程序。創(chuàng)建名為Hello的目錄,然后在目錄下創(chuàng)建名為hello.cpp的c源文件,將上面的代碼寫入文件。運行啟動程序Qt by TrolltechQt命令提示。在命令行模式下,將目錄切換到hello,然后輸入命令:qmake -project。此命令生成依賴于工作平臺的工程文件()。再次輸入命令。qmake

12、.此命令通過工程文件生成可在特定工作平臺上使用的makefile。最后,輸入命令:使用make創(chuàng)建應用程序。運行此程序可以獲得以下程序界面:Qt也支持XML??梢杂靡韵抡Z句替換程序行6:qlabel * label=new qlabel( Hello Qt! );重新編譯程序時,您會發(fā)現(xiàn)界面具有簡單的HTML樣式。下圖:2,調用退出第二個示例說明如何使應用程序響應用戶的動作。此應用程序包含允許用戶單擊此按鈕退出程序的按鈕。程序代碼與前面的程序非常相似,不同之處在于程序代碼使用QPushButton代替QLabel,并將用戶操作(單擊按鈕)和某些程序代碼關聯(lián)起來。1 #include2 #inc

13、lude3 int main (int argc,char *argv )4 .5 QApplication app (argc、argv);6 qpush button * button=new qpush button( quit );7q object 3363603360 connect(button,signal (clicked()、8 app,SLOT(quit();9 button-show();10 return app。exec();11Qt程序中的窗口組件信號(signals)表示用戶的行為或狀態(tài)更改。在此示例中,當用戶單擊此按鈕時,QPushButton將發(fā)送click

14、ed()信號。信號可以與函數(shù)(在此例中稱為插槽(slot)相關聯(lián),并且在信號發(fā)送時與信號相關聯(lián)的插槽將自動執(zhí)行。此示例將按鈕的信號 clicked()與QApplication對象的插槽 quit()相關聯(lián):按下按鈕,程序退出。3、窗口布局本部分使用一個示例來演示如何在窗口中計劃單個部件的放置,并學習如何使用信號和插槽同步兩個窗口部件。此應用程序需要輸入用戶的使用期限,用戶可以通過旋轉窗口或滑塊窗口輸入。此應用程序包含三個窗口組件:一個QSpinBox、一個QSlider和一個QWidget。窗口小部件q小部件是程序的主窗口。QSpinBox和QSlider放置在q構件中。q小部件的子窗口。當

15、然,q小部件也可以稱為QSpinBox和QSlider的父窗口。QWidget本身沒有父窗口。被視為頂層窗口。QWidget及其所有子類的構造函數(shù)都具有表示父窗口的QWidget *參數(shù)。以下是程序的代碼:1 #include2 #include3 #include4 #include5 int main (int argc,char *argv )6 .(成語)。7 QApplication app (argc、argv);8q小部件* window=newq小部件;9 window-set window title( enter your age );10 qsp inbox * sp inbox=new qsp inbox;11 q slider * slider=new q slider(Qt 33603360 horizontal);12 spinBox-setRange (0,130);13 slider-setRange

溫馨提示

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

最新文檔

評論

0/150

提交評論