qmake是為Qt量身打造的,使用起來非常方便cmake使用上不如qmake簡單直接,但復雜換來的是強大的功能內置的out-ofsource構建。(目前QtCreator為qmake也默認啟用了該功能,稱:shadow build)
Qt可以運行在不同的平臺,像是UNIX/X11,Windows中的Mac OS與支援的framebuffer的嵌入式的Linux平臺(嵌入式Linux平臺),這邊的文件將改寫以前的Qt3.1時的文件!工程學系使用的版本為Qt的開源4.3.3版,在Vista的作業系統下撰寫。
一、Qt概述1、QT概述Qt是Trolltech公司的一個產品。Qt是一個多平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立圖形用戶界面應用程序所需的所有功能。Qt是完全面向對象的,它很容易擴展,并且允許真正的組件編程。自從1996年早些時候,Qt進入商業領域,它已經成為全世界范圍內數千種成功的應用程序的基礎。Qt也是流行的Linux桌面環境KDE的基礎。
Qt – 一個跨平臺應用程序和UI開發框架。它包括跨平臺類庫、集成開發工具和跨平臺 IDE。使用 Qt 您只需一次性開發應用程序,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統部署這些應用程序。Qt主要是由 諾基亞 開發和維護的。Qt通過開源授權(LGPL 和 GPL)以及商業授權的方式對 Qt 進行授權。在Linux下Qt可是大名鼎鼎,Linux的KDE圖形界面就是基于Qt開發的。Qt的最大好處是跨平臺,可以看到上圖,Qt可以支持windows,Mac os,linux,embedded linux, wince/mobile,symbian,諾基亞最新的Megoo那也是不在話下了,由于公司最近有些項目要求跨平臺的支持,原來的GIS引擎是基于Windows開發的,雖然沒有用MFC,但是由于繪圖引擎這塊使用的GDI+,所以跨平臺是非常困難的。所以為了支持跨平臺以及在可預見的將來的跨平臺的需求,決定將繪圖引擎這塊在Qt的基礎上進行重構,并使用Qt開發一套基于QtGis引擎的地圖項目管理應用程序。
著名的QT庫前一陣子升級到4.xx版本了,我目前在開發的一個基于QT3的軟件,由于受到QThread的各種困擾,因此打算嘗試將代碼升級到QT4,但是當我實際開始升級工作后,才發現QT3和QT4的變化實在是太大了,最后導致我幾乎修改了程序中的所有文件,幸好目前開發工作還只是開了個頭,只修改了40多個類,但那也足足花了我一周多時間,下面簡單的說說QT3升級到QT4時的注意點。
QML是什么?QML是一種描述性的腳本語言,文件格式以.qml結尾。語法格式非常像CSS(參考后文具體例子),但又支持javacript形式的編程控制。它結合了QtDesignerUI和QtScript的優點。QtDesigner可以設計出.ui界面文件,但是不支持和Qt原生C++代碼的交互。QtScript可以和Qt原生代碼進行交互,但是有一個缺點,如果要在腳本中創建一個繼承于QObject的圖形對象非常不方便,只能在Qt代碼中創建圖形對象,然后從QtScript中進行訪問。而QML可以在腳本里創建圖形對象,并且支持各種圖形特效,以及狀態機等,同時又能跟Qt寫的C++代碼進行方便的交互,使用起來非常方便。
Qt是一個多平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的很容易擴展,并且允許真正地組件編程。 自從1996年早些時候,Qt進入商業領域,它已經成為全世界范圍內數千種成功的應用程序的基礎。Qt也是流行的Linux桌面環境KDE 的基礎,KDE是所有主要的Linux發行版的一個標準組件。
創建一個 PyQt4 一般可以通過很少的步驟完成。通常的方法是用 Qt 提供的QtDesigner工具創建界面。使用QtDesigner,可以方便地創建復雜的GUI界面。然后,可以在窗口上創建部件, 添加名字等。創建一個PyQt4一般需要: 4.1.<br>使用QtDesigner創建GUI界面 2.<br>在屬性編輯器中修改部件的名字 3.<br>使用pyuic4工具生成一個python類 4.<br>通過GUI對應類來運行程序 5.<br>通過設置自己的slots來擴展功能 6.<br>當使用窗口部件的時候,可以從 "PyQt's Classes"查詢。Qt采用易于理解的方式來命名函數,例如:"setText"。
最近一段時間除了學習Qt,翻譯Qt文檔之外,由于工作和興趣的原因,開始著手看Qt OpenGL編程。在網上搜索了有關OpenGL的教程,發現NeHe的OpenGL教程的還很不錯,作者是NeHe。上面有很多種語言的實現,但是沒有Qt和Gtk的,所以我就想著手寫這個Qt OpenGL教程,每課的內容和NeHe是一樣的。另外,介紹NeHe的一個中文翻譯站點CSDN-CKer翻譯的NeHe的OpenGL教程,翻譯人是CKer,在我學習這個教程的過程中,給了我很大的幫助。
這個教程會提供一個比第一個教程更加“真實世界”的Qt編程實例。它介紹了Qt編程的許多方面,介紹了創建菜單(包括最近使用文件列表)、工具條和對話框、載入和保存用戶設置,等等。如果你對Qt很陌生,如果你還沒有閱讀過,請閱讀一下。如何學習Qt介紹在這個教程中,我們將會開發一個叫做chart的單一應用程序,它根據用戶輸入的數據來顯示簡單的餅形和條形圖表。這個教程提供了一個應用程序開發的概述,包含了一些代碼片斷和與之相配的解釋。應用程序完整的源程序在examples/chart。
Qt是一個著名的C++庫——或許并不能說這只是一個GUI庫,因為Qt十分龐大,并不僅僅是GUI。使用Qt,在一定程序上你獲得的是一個“一站式”的服務:不再需要研究STL,不再需要C++的,因為Qt有它自己的QString等等。或許這樣說很偏激,但Qt確實是一個“偉大的C++庫”。我們所使用的Qt,確切地說也就是它的GUI編程部分。C++的GUI編程同Java不同:GUI并不是C++標準的一部分。所以,如果使用Java,那么你最好的選擇就是AWT/Swing,或者也可以使SWT/JFace,但是,C++的GUI編程給了你更多的選擇:wxWidget, gtk++以及Qt。