Ⅰ 我想學習QT,要有什麼基礎嗎
QT就是一個C++的庫。
就像C++標准庫一樣。
我也在學QT,學了幾個庫,覺得QT已經把C++標准庫的功能都實現了,而且有過之而不及。
有書上也說,可以使用QT代替C++的標准庫---《C++ 設計模式——基於Qt 4開源跨平台開發框架》
當然,要學習C++的語法。
不需要從C開始,找本書(上面那本就是從C++語法開始講起的)、用Google、希望你的英語不錯(為了跟上時代,我不得不閱讀QT的英文文檔)。
總而言之難度不小
學習語言,沒有人能把細節全記住。關鍵是會查,會積累,會用。
Ⅱ 請問用win764位系統開發qt軟體需要什麼環境
1.搭建C++開發環境,使用mingw32或者visualstudio。這個很簡單,mingw32的話直接使用官網的mingw-get安裝工具在線安裝,推薦使用預打包的庫,這樣不會有兼容問題。白天裝比晚上效果要好的多。VS的話推薦使用vs2010或以上的版本,至於哪裡弄的話,請網路,你懂的,很多資源,注意這兩個都是32位的,不需要64位的,而且64的各種問題……
2.安裝cmake,這個可以是預編譯的二進制,也可以是源碼再自己編譯。這個和你使用的編譯環境沒關系,cmake是為了輸出makefile的,所以只要有這個裝在電腦上就行了,注意這個預編譯版本只有32位的(x86)。mingw32自己編譯的話,包裝的差不多基本上就沒啥困難了。其實cmake這個可以不裝,但是有個問題存在,如果使用mingw32的話,還要一個IDE環境,一般QT我們在windows上都用Qtcreator2.6.1/Qt4.8.4。但是這貨啟動就會檢查cmake……
至於vs,我不清楚,反正qt本身沒有要求cmake,估計是不用的。
3.從qt-project網站下載opensource版的Qt,注意!Qt5默認加入了openGL支持,你要是想用就要注意你確實能滿足這個條件不。推薦使用4.8.8版本,畢竟Qt的資料少的可憐,Qt5放出來還沒幾個月呢,根本沒啥資料。mingw和vs是不一樣的。話說vs版本要求2010,最好是這個,支持比較多。
4.mingw的話,要裝qtcreator2.6。畢竟沒有IDE很難搞,即使裝了cmake也可能出現cmake環境配置不正確的問題,這樣只要打開qtcreator然後如果發生cmake錯誤,那麼不管,直接進到選項->構建和運行下邊的選項把你的mingw編譯器設置進去,cmake目錄指到你的cmake.exe上,默認的安裝地址為mignw/bin下邊。然後確定你的mingw編譯器被自動識別出來才行。就是cmake標簽前面那個編譯器的標簽下邊要有mingw(x86)這一項
。這樣基本上就差不多了。qtcreator的話,很好用。
VS2010要在qt-project網站上下載vs-addin,然後它會為你完成大部分的工作。這個我並沒有用,因為vs太大了,啟動很慢,而且和qt工具集成的不是那麼漂亮。
最後,反正我是正常運行的……用的還好,就是參考文檔還是太少。
Ⅲ 什麼是qt,QT Creator,QT SDK,QT Designer
Qt是一個跨平台的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的,很容易擴展,並且允許真正地組件編程。
自從1996年早些時候,Qt進入商業領域,它已經成為全世界范圍內數千種成功的應用程序的基礎。Qt也是流行的Linux桌面環境KDE 的基礎,KDE是所有主要的Linux發行版的一個標准組件。
Qt支持下述平台:
MS/Windows - 95、98、NT 4.0、ME、2000、XP 和 Vista
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有幀緩沖(framebuffer)支持的Linux平台,Windows CE。
Symbian/S60 - 目前已經可以提供技術預覽版本
Qt是諾基亞公司的一個產品。
Qt被按不同的版本發行:
Q商業版 提供給商業軟體開發。它們提供傳統商業軟體發行版並且提供在協議有效期內的免費升級和技術支持服務。如果要獲得最新信息,請瀏覽諾基亞公司Qt Software網站頁面,或者與[email protected]聯系。商業版多一些擴展模塊。
Qt開源版是Qt僅僅為了開發自由和開放源碼軟體, 提供了和商業版本同樣的功能。GNU通用公共許可證下,它是免費的。最新的版本可以在這里下載。
從2009年3月發布的Qt 4.5 起,諾基亞將為Qt增添新的開源LGPL授權選擇。
關於如何正確的選擇這三種授權協議,可以閱讀[1]。
從2009年5月11日起,諾基亞Qt Software 宣布 Qt源代碼庫面向公眾開放,Qt 開發人員可通過為 Qt 以及與 Qt 相關的項目貢獻代碼、翻譯、示例以及其他內容,協助引導和塑造 Qt未來的發展。為了便於這些內容的管理,Qt Software 啟用了基於 Git 和 Gitorious 開源項目的Web 源代碼管理系統[2] 。
在推出開放式 Qt 代碼庫的同時,Qt Software 在其官方網站發布了其產品規劃(Roadmap)。其中概述了研發項目中的最新功能,展現了現階段對 Qt 未來發展方向的觀點,以期鼓勵社區提供反饋和貢獻代碼,共同引導和塑造 Qt 的未來。
Qt 4.5版本
Qt 4.5涵蓋了一些新的特色,它的最大改進是通過協同作用提升了整個框架的性能。圖形系統、數據處理和網路引擎性能顯著增強,實現了基於Qt的應用程序性能的明顯提升。
Qt 4.5版本還提升了與WebKit頁面渲染引擎的集成度,將Web和本地內容融合進豐富的用戶體驗當中。包括:
Netscape瀏覽器插件API支持,使Qt應用程序可以載入Flash(例如YouTube播放器) 更先進的Web 用戶界面效果,包括動畫、轉換和縮放 新的JavaScript腳本語言引擎可提供更強的性能
Qt4.5還被移植進了蘋果的Cocoa框架。之前的Qt只支持Carbon框架,現在的Qt 4.5兩者都支持。這意味著開發人員能夠以單一源代碼創建出支持32位或64位位元組的Intel或PowerPC Mac二進制文件。
Qt Creator
開發人員目前已經可以下載Qt Creator的1.1版本,這是一個用於Qt開發的輕量級跨平台集成開發環境。Qt Creator可帶來兩大關鍵益處:提供首個專為支持跨平台開發而設計的集成開發環境 (IDE),並確保首次接觸Qt框架的開發人員能迅速上手和操作。
Qt Creator包含了一套用於創建和測試基於Qt應用程序的高效工具,包括:
一個高級的C++代碼編輯器 上下文感知幫助系統 可視化調試器 源代碼管理 項目和構建管理工具
Qt Creator在LGPL 2.1版本授權下有效,並且接受代碼貢獻。目前的Qt Creator只支持桌面平台(Windows、Linux、Mac操作系統)的Qt開發,但隨後數月就能支持嵌入式平台的開發。
2. 為什麼選擇 QT
2.1 QT 是基於 C++ 的一種語言
相信 C/C++ 目前還是一種很多人都在學習的語言. QT 的好處就在於 QT 本身可以被稱作是一種 C++ 的延伸. QT 中有數百個 class 都是用 C++ 寫出來的. 這也就是說, QT 本身就具備了 C++ 的快速、簡易、Object-Oriented Programming (OOP)等等無數的優點.
2.2 QT 具有非常好的可移植性(Portable)
QT 不只是可以在 Linux 中運作.也同樣可以運行在 Microsoft Windows 中.這也就意味者,利用 QT 編寫出來的程式,在幾乎不用修改的情況下,就可以同時在 Linux 中和 Microsoft Windows 中運行. QT 的應用非常之廣泛,從 Linux 到 Windows 從 x86 到 Embedded 都有 QT 的影子.
3. 什麼是 QT Designer
簡單的來說 QT Designer 是一個 GUI 的工具. 這個工具可以幫助我們來加快寫 QT 程式的速度. 利用 QT Designer 可以用一種所見既所得的方式,來產生 QT 程式的 GUI 介面的程式碼. 通過增加一些功能,就可以完成一個程式了.利用 QT Designer 可以非常快速的學會 QT, 而我們這里說利用 QT Designer 來學習 QT 而不是利用 QT Designer 來寫 QT, 這里的區別就在於, QT Designer 所產生的程式碼有些繁瑣. 跑起來也比較的慢些.我們這里只是利用 QT Designer 來幫助我們學習.而不是直接 去跑 QT Designer 生成的程式碼.
Qt軟體開發工具包 (Qt SDK)
全新的Qt軟體開發工具包,可從www.qtsoftware.com下載。這個綜合套裝的設計主旨,是為開發人員提供從一個易於安裝的二進制文件包入手,開始跨平台Qt開發這一過程中所需的一切。
Qt SDK包括了Qt庫、Qt Creator IDE和Qt工具,這些都集成在一個易於安裝的文件包里。
Qt SDK也同樣也支持Linux/X11, Windows, Mac三種主流桌面操作系統。
Qt的優勢
Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平台上的 MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 具有下列優點:
優良的跨平台特性:
Qt支持下列操作系統: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,QNX 等等。
面向對象
Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工作變得十分簡單。
豐富的 API
Qt包括多達 250 個以上的 C++ 類,還替供基於模板的 collections, serialization, file, I/Odevice, directory management, date/time 類。甚至還包括正則表達式的處理 功能。
支持 2D/3D 圖形渲染,支持 OpenGL
大量的開發文檔
XML 支持
Webkit 引擎的集成,可以實現本地界面與Web內容的無縫集成
但是真正使得 Qt 在自由軟體界的眾多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脫穎而出的還是基於 Qt 的重量級軟體 KDE 。
Ⅳ 去深圳ITjob學Qt開發有什麼要求
Qt開發要求有一定的C語言基礎,如果對Win32的消息機制有一定的了解也可以,這有助於在學習信號和槽的時候加深對知識點的理解。
Ⅳ 本人學了.net和Qt開發,以後想做技術總監或者PM,沒事的時候該學習哪些技術知識呢
.net一般用於開發windows程序,而Qt可以開發在各平台上運行的程序。各有各的優點。
如果開發嵌入式產品個人認為Qt較合適。
如果想做技術總監什麼的建議都學:)
其實從技術層面上來看,.net 和Qt本質是一樣的,精通一個,另外一個掌握起來就容易很多了
Ⅵ 哪位高手告訴我qt+ace 開發跨平台程序,windows 與linux下需要安裝些哪些東東能否介紹下相關的一些經驗
ACE全稱adaptive communication enviroment,是一套C++的通信庫。它提供了socket/threading/memory management等多種系統調用的面對對象的wrapper,使C++通信軟體開發更加簡單。
ACE最帥的特點:跨平台!!!!!!ACE屏蔽了底層平台特定的語義,使用ACE編寫的C++程序,可以在linux/windows/HP-Unix下編譯執行,而且效率很高。曾經做過的一個VOIP項目就是用ACE寫的,那個項目的技術相當復雜,需要用到socket/multi-threading等很多與操作系統聯系緊密的技術,但用了ACE(界面用Qt)後,那個項目源碼可以直接在linux和windows下編譯運行,呵呵,還是相當成功的。項目進行中感到ACE相當成熟,舉一個朋友說Siemens的某些大型工程也是用的ACE。而且,ACE是免費開源的軟體包--不用白不用。
C++ Network Programming就是ACE項目的負責人Schmidt寫的,這位老哥以前是華盛頓大學的副教授,主要研究領域是軟體工程(他寫了不少關於pattern的文章和書),現在貓到UC Irvine去了,好象還是副教授(要這哥們在中國,早應該成教授了吧)。這兩本書主要介紹了ACE的使用,也涉及了部份設計方面的內容。第一卷主要介紹ACE的基本功能和使用,第二卷則偏重通訊軟體中的design pattern。搞通信軟體開發的兄弟們絕對應該看看此書。
另外也有人推薦把ACE作為學習C++的範例來學習,呵呵,這就是個人喜好的問題了...總的來說ACE的代碼風格還是很不錯的--比STL那些天書好看些,呵呵。
Q: 什麼是ACE或者ACE2插件?
A: 如果把普通的插件比作一棵棵互不關聯的小樹, 那麼ACE庫或者ACE2庫就是一棵大樹干,所有基於ACE的插件就是長在上面的樹枝. 共有的部分都被集成到一起,因此代碼非常短小和快速,而且穩定.ACE2是用來取代ACE的版本,雖然有一些插件還未能從ACE轉換到ACE2,但是ACE2系的插件現在可說代表了wow插件的最高水平.
ACE2是為其他倚賴ACE2才能運行的插件提供庫支持的一個庫文件,本身不具備任何功能。
如BigWigs[ACE2]就說明BigWigs這個插件需要ACE2的支持。
使用方法:解壓縮以後無論是ACE2還是!LIB都直接放入Interface\Addons裡面就可以了。
ACE 類插件因為短小精悍 面向對象 有越來越多的插件開始以其作為編寫庫
目前已經發展到 ACE2
ACE2運行庫開發組都是提倡直接內嵌的,完全沒有必要單獨提出來!沒錯如果你有10個內嵌了ACE2的插件,開始載入的時候確實會載入10個副本的ACE2導致Warmup顯示內存佔用偏大,但是在下次的碎片回收中,多餘的ACE2副本都會被清除,只留下一個駐留內存。如果有新舊多個版本,則會自動選擇最新的版本駐留。所以說,Warmup的數據,不能正確的反映出ACE2插件的實際內存使用。Warmup的作者本身也是ACE開發團隊的成員,現在由於Warmup導致的一些對ACE2的誤解,這傢伙想必也是哭笑不得了,呵。
作為ACE2插件的使用者,完全沒有需要去考慮運行庫的版本更新等等問題,這是ACE2標準的一個重要精神,是ACE2開發初始就持有的初衷!所有的ACE2運行庫,都是可直接內嵌、自動管理版本,不需要使用者進行任何管理干預的!
ACE2作為wow插件界的技術先鋒,為插件作者提供了一個良好的開發平台,也切實地為玩家帶來了易用、強大而低資源佔用的優秀插件。希望大家不要為過往的成見和一些人的誤導而錯失了如此優秀的插件!
談運行庫而色變,完全是沒有必要的。ACE2的優秀運行庫(包括ACE2和基於ACE2標準的CandyBar, Dewdrop, Metrognome, Compost, ParserLib等等)不但是簡化了插件的開發,優化了代碼,也對降低插件資源佔用作用。再加上ACE開發社區作者們強烈的優化意識,可以負責的說,ACE2的插件比其他插件絕對更省資源!
本質上來說, Qt是一個跨平台的C++應用程序開發框架,有時又被稱為C++部件工具箱。Qt被用在KDE桌面環境、Opera、GoogleEarth、Skype、Adobe Photoshop Album和VirtualBox的開發中。它是諾基亞(Nokia)的QtDevelopment Frameworks 部門的產品。使用 Qt,只需一次性開發應用程序和用戶界面,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統部署這些應用程序。
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平台上的 MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 具有下列優點:
a) 優良的跨平台特性:
Qt支持下列操作系統: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,QNX 等等。
b) 面向對象
Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工作變得十分簡單。
c) 豐富的 API
Qt包括多達 250 個以上的 C++ 類,還替供基於模板的 collections, serialization, file, I/Odevice, directory management, date/time 類。甚至還包括正則表達式的處理 功能。
d) 支持 2D/3D 圖形渲染,支持 OpenGL
e) 大量的開發文檔
f) XML 支持
最近諾基亞發布了Qt 4.6——最新版的跨平台應用程序和用戶界面框架。Qt 4.6 對全新平台提供支持,具有強大的全新圖形處理能力並支持多點觸摸和手勢輸入,讓高級應用程序和設備的開發過程變得更加輕松和快樂。
諾基亞應用服務和框架副總裁Sebastian Nystrom說:「不論是什麼樣產品設計或開發平台,Qt 4.6的發布對開發人員來說都是一件令人興奮的事。」
「開發人員可以輕而易舉地為桌面平台或設備(包括數億部基於Symbian 和 Maemo系統的設備)開發出具有視覺美感和網路連接功能的應用程序。」
Nystr?m補充說:「開發人員將非常喜歡使用Qt直觀的編程界面,快速開發出功能強大、外表美觀的應用程序。」
更多平台
Qt4.6 首次包含了對Symbian 平台的支持,並在其所支持的平台中新增了 Windows 7、Apple Mac OS 10.6 (雪豹)和即將上市的Maemo 6。此外還為實時操作系統QNX 和 VxWorks提供了網路社區支持。對Maemo 5的支持目前也已進入研發階段,其技術預覽版第二版已於今日發布。
Qt 對 Symbian 和 Maemo 的支持首次為開發人員創造了使用同一代碼庫同時針對這兩個平台進行開發的機會。能夠跨平台分享代碼就意味著開發人員所開發的應用程序上市的速度將更快,影響的設備用戶群將更廣。
Qt Mobility項目下的全新Qt API技術預覽版也於今日同時發布。這些跨平台的API為開發人員提供了多種功能,如導航類設備的定位功能,以及信息發送和接收、聯系人和網路連接管理等。
外觀更炫
Qt 4.6是在4.5圖形增強功能的基礎上創建的,進一步強化了這些圖形功能,添加了全新的動畫框架(Animation Framework)——包括直觀的狀態機功能——以及全新的高級圖形功能,如不透明、陰影、閃光和濾鏡等。
使用手指
Qt4.6最令人興奮的新功能之一就是可以創建多點觸摸應用程序。這種全新的基於多觸點和手勢的輸入法(如輕觸和動力滾動)使Qt4.6框架的功能更為強大,用戶可以通過觸覺以動態的方式與應用程序和設備進行互動。
性能更強
傳統軟體開發觀點認為高級用戶界面功能的獲得通常是以性能嚴重受損作為代價的。Qt 4.6 對此觀點提出了挑戰,為此投入大量工作,既要獲得最佳性能,又要能讓開發人員所開發的產品達到用戶所要求的「令人驚嘆」的效果。
性能提升主要包括:一個經過高度優化、重新編寫的 Qt GraphicsView 渲染演算法、一個全新的 OpenGL 繪圖引擎、WebKit、使用 OpenVG 對 2D 矢量圖形的支持,以及對全新 DirectFB 的支持。
最新工具
在發布 Qt 4.6 的同時,作為 Qt 開發跨平台 IDE 的 Qt Creator 也發布了更新版本。Qt Creator 1.3 和 Qt 4.6共同構成的 Qt SDK,包含了開發跨平台應用程序所需的全部功能。(來自programbbs)
3、用QT能做什麼?
在QT的官方網站談到了15年來取得了的成就,它幫助世界各地和各個行業組織開發出先進的高度創新的應用和設備。
使用Qt,眾多的開發商和公司已經能夠:
● 減少了近50%的開發時間。
● 加速了50%的開發速度由於代碼可維護
● 減少了50%的代碼量
Qt的用戶怎麼說?
● 94%報告說,Qt的滿足或超過其發展的期望
● 92%會向他人推薦使用Qt
● 76%報告因為使用Qt,生產率提高
Qt的應用領域:
有很多出名的例子是都是使用Qt開發的。例如: Arora(一款跨平台的開源網頁瀏覽器)、eva(Linux版QQ聊天軟體)、FreeMat(一個自由開源的數值計算環境和編程語言 )、Ga-Ga(即時通信軟體)、Google地球(Google Earth)(三維虛擬地圖軟體)、ImageVis3D、KDE(著名的桌面環境)、Elibs(一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等)、Last.fm播放器(著名的互聯網音樂社區網站的桌面客戶端)、Motorola A760(UI 以 Qt/Embedded 建構)、MythTV9(開源的數字視頻錄制軟體)、Opera(著名的網頁瀏覽器)、Qterm(跨平台的BBS軟體)、QtExtended、Quantum GIS、Skype(一個使用人數眾多的基於P2P的VOIP聊天軟體)、SMPlayer(跨平台多媒體播放器)、TeamSpeak(跨平台的音效通信軟體) 、Tlen.pl:波蘭人發明的 instant messaging client TOra、VirtualBox(虛擬機軟體)、Xconfig(Linux的Kernel配置工具) 、chmcreator(開源的chm開發工具)……
Ⅶ 找Qt開發工作所需的Qt知識
OpenCV是一個開源的圖像處理庫,QML是Qt官方推出的一個描述性語言,Qt Markup Language,Qt Quick也是Qt官方推出的一個技術框架,在開發嵌入式、動態觸屏等時有一定的優勢。
模塊的作用:
打一個很簡單的比方,QML就是Qt的HTML,C++就是Qt的JavaScript,而Qt Quick相當於一些已經集成好的開發框架,使開發應用程序變得更加簡單省事。
OpenCV是一個基於C/C++的開源圖像處理庫,和Qt本身沒有太多關聯,其主要是用於計算機視覺和圖形開發,Qt的擴展應用OpenCV並不是每個應用程序都要用到,只是某些有特殊需求的應用程序可以更方便地使用Qt擴展的OpenCV應用。比如說用Qt開發一個軟體,要使用人臉識別功能,就可以集成OpenCV來實現。
使用頻率:
雖然說QML相當於HTML,C++相當於JavaScript,但是還是有一定區別:所有的網頁都是通過解析HTML渲染出的,JavaScript雖然可以動態改變網頁,但是最終還是通過改變HTML來達到效果;QML、C++的關系恰好反過來,在Qt中,C++是「更加底層」的,QML使用更加簡單的標記語言的語法來調用底層的C++繪圖支持API,從而提高程序開發的效率。
使用QML可以更快速、簡捷地開發應用程序,在Qt中的使用頻率也是很高的,不過這要根據特定開發人群、開發目標而定。有些開發者習慣直接使用C++開發,而有些開發者更喜歡簡單的QML,很多時候都是「用QML開發用戶界面,用C++開發業務邏輯」,但是用C++開發用戶界面的也不在少數。
Qt Quick是一套開發框架,核心語言就是QML。
Qt Quick的使用頻率不低,從Qt的New Project界面就可以看出,Qt Quick是和Qt傳統的C++ Widge平起平坐的(當然還有Qt for Python等)。
OpenCV在不需要圖形處理功能的情況下是不需要用到的,所以不怎麼好說「使用頻率」,因為這是針對特定的軟體需求來的。
是否有必要學習:
Qt Quick能夠使應用程序開發更有效率,但是並不是開發一個程序必備的,能用Qt Quick開發的,C++肯定能夠做出來,但是耗費時間、精力更多。在Qt開發工作這一塊,掌握Qt的核心功能是必須的,而且這還遠遠不夠。在招聘的時候肯定是考察應聘者對Qt各種技術和開發思想的理解和掌握情況,而Qt Quick是官方推出的框架,掌握其開發方法應該是基本功。