資源描述:
《Linux下QT圖形界面開發(fā)(一)——概述(1)》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、一、QT簡介Qt是一個跨平臺的C++圖形用戶界面庫,.由挪威TrollTech公司出品,目前包括Qt/Xll,基于Frambuffer的QtEmbedded,快速開發(fā)工具QtDesigner兒國際化工貝QtLinguist等.Qt支持Unix及Linux系統(tǒng),還支持WindowsNT/Windows2k及Qindows95/98平臺.Qt的良好封裝機制使其模塊化程度非常高,可重用性較好.Qt/Embeded是面向嵌入式系統(tǒng)的Qt版本,是Qt的嵌入式Linux窗口,是完整的自包含C++GUI和基于Linux的嵌入式品臺開發(fā)工具。Qt/Em
2、bededAPInJ'用于多種開發(fā)項目。許多基于Qt的XWindow程序可以非常方便地移植到恢入式版本。下而我們就從實際應用屮認識Qt.二、在終端下編寫Qt程序我們先要介紹在終端窗口編寫Qt程序.打開一個終端,建立一個文件夾,如:mkdirhello然后進入這個文件夾:cdhello創(chuàng)建c++文件,vihello,cpp在文件中鍵入卞面的代碼:#inelude#includeintmain(intargc,char*argv[J){QApplicationapp(argc,argv);
3、QLabel*label二nowQLabel(Z/HelloQt!",0);app.set'kiinWidget(label);label->show();returnapp.exec();然后我們用qt的工具qmako來生成工程文件:qmake-project大家可以用Is查看一下,是不是多了一個名為hello.pro的工程文件.接下來是生成Makefile文件:qmakehello.pro呵呵,Is—K,Makefile終于看到你的.接下來就是makeT,等上一段時間.運行程序./hello下面是界面:下血我們來講解上血的程序:#i
4、nclude這一行包含了0Application類的定義。在每一個使用Qt的應用程序中都必須使用一個QApplication對彖。QApplication管理了各種各樣的應用程序的廣泛資源,比如默認的字體和光標。#include這一行包含了OPushButton類的定義。參考文檔的文件的最上部分提到了使用哪個類就必須包含哪個頭文件的說明。QPushButton是一個經典的圖形用戶界面按鈕,用戶可以按下去,也可以放開。它管理白己的觀感,就像具它每一個OWidgct。-?個窗口部
5、件就是一個可以處理川戶輸入和繪制圖形的用八界而對象。程序員可以改變它的全部觀感和它的許多主要的屬性(比如顏色),還有這個窗口部件的內容。一個QPushButton可以顯示一段文本或者一個QPixmapointmain(intargc,char**argv)main()函數是程序的入口。幾乎在使用Qt的所有情況下,main()只需要在把控制轉交給Qt庫之前執(zhí)行一些初始化,然后Qt庫通過事件來向程序告知用戶的行為。argc是命令行變量的數量,argv是命令行變量的數組。這是一個C/C++特征。它不是Qt專有的,無論如何Qt需要處理這些變量(
6、請看下面)。OApplicationa(argc,argv);a是這個程序的OADDlication。它在這里被創(chuàng)建并H?處理這些命令行變量.在任何Qt的窗口系統(tǒng)部件被使用之前創(chuàng)建QApplication對象是必須的。OPushBuHonhello(“Helloworld!H,0);這里,在QApplication乏后,接著的是第一個窗口系統(tǒng)代碼:一個按鈕被創(chuàng)建了。這個按鈕被設直成顯示“Hellowodd!”并且它H己構成了一個窗口(因為在構造函數指定0為它的父窗口,在這個父窗口中按鈕被定位)。hello.resize(100,30);
7、這個按酒被設置成100像素寬,30像素高(加上窗口系統(tǒng)邊框)。在這種情況下,我們不用考慮按鈕的位置,并且我們接受默認值。a.setMainWidget(&hello);這個按鈕被選為這個應用程序的主窗口部件。如果用戶關閉了主窗II部件,應用程序就退出了。你不用必須設置一個主窗口部件,但絕大多數程序都冇一個。hello.showQ;當你創(chuàng)建一個窗口部件的吋候,它是不可見的。你必須調用Show()來使它變?yōu)榭梢姷?。returna.execQ;這里就是main()把控制轉交給Qt,并R當應用程序退出的時候exec()就會返回。在cxccO中,
8、Qt接受并處理用八和系統(tǒng)的事件并且把它們傳遞給適當的窗口部件。