作為編輯器程序員,不能不用QT啊
我是從VC1.5開始使用MFC.說實話,一直使到VC5,用MFC每寫一次ITEM TREE, 就忘一次。 畢竟不是全職寫UI的。UI只是工具,還是為數(shù)據(jù)編輯服務(wù).誰也不會三天兩頭和MFC沒完沒了.每次寫界面,都要重新學(xué)一遍.很苦痛...
后來用過一段DELPHI, BOALAND 對界面程序員貼切的考慮, 豐富的控件庫,使得用DELPHI寫功能界面程序變成一件輕松的事. 終于知道為什么MFC不好用,容易忘. 因為MFC設(shè)計沒有COMMON SENCSE. 不是人一般去想事情的思路.本來C++就是利用人類普遍思維習(xí)慣的模式來設(shè)計程序。而MFC偏要搞得很復(fù)雜。 一個DOC VIEW FRAME 就繞得亂七八糟. 和MFC年代久遠有關(guān).也和MS從不給開發(fā)人員很體貼的設(shè)計有關(guān)。看看早年D3D就知道...
現(xiàn)在的項目全部是C++. 需要與OPENGL,D3D結(jié)合緊密. 所以需要使用MFC.一直在苦尋一種類似DELPHI那么好用,COMMON SENCSE足夠,又和C++,VC結(jié)合緊密的東西.曾經(jīng)看過wxWidget. 這是套和MFC差不多的界面開發(fā)庫. UNREAL3 編輯器就用的它.但是基本思路和MFC一樣。還缺少UI EDITOR 支持.
后來經(jīng)高人指點摸到了QT這里.
Qt是一個多平臺的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。Qt是完全面向?qū)ο蟮暮苋菀讛U展,并且允許真正地組件編程。 QT4后完全和VC8兼容.提供強大的UI EDITOR.編程思路異常COMMON SENCSE.用個標準的COMPOSITION模式就把所有界面組織到一起. 注意,是所有啊.實在方便得無以復(fù)加了. "信號"和"槽"的概念異常簡單.幾句話就把窗口操作與功能邏輯連接到一起.配合一些重載EVENT函數(shù),簡直好用得痛哭流涕!
QT來自LINUX,KDE的靈魂.完全跨平臺.而且使用各平臺的底層圖形API渲染. 在WIN上用WIN32 SDK.在LINUX上用X11.沒治了....還支持OPENGL,SQL,XML,...等等現(xiàn)成庫. 它會給人節(jié)省大量生命...
中文的信息點: http://www.qiliang.net/qt.html
用晚了,才知道生命白白短了一截...
還有這篇:
很多關(guān)注QT,留了許多話,感謝感謝
從留言中得知QT版本間躍遷不很方便. 我只算一個QT新手. 所以不懂的還需要向大家請教.
我使用QT背景 .在 游戲開發(fā)中,尤其是3D游戲,和3D ENGINE開發(fā)中,編輯器是其重要環(huán)節(jié). 由于不是作為商品出售, 只作為IN HOUSE使用,所以開發(fā)中不象游戲本身對質(zhì)量和易用性要求那么嚴格。但是對于功能和時效性近乎苛刻。可以說編輯器實現(xiàn)了什么功能, 游戲就有什么功能。 經(jīng)常遇到,沒有為已經(jīng)開發(fā)出的3D ENGINE核心功能配套的編輯器, 而使得相應(yīng)功能無法正常使用。 沒有給美術(shù)提供手段, 引擎中再強大功能也發(fā)揮不了。國外3D游戲逐漸從技術(shù)開發(fā)轉(zhuǎn)為內(nèi)容開發(fā)。所以需要更強大快速的手段開發(fā)編輯器,來滿足爆炸增長的需求。
在這種時候,需要一種平易近人的工具。需要解決釘子,就會給把錘子。不是給個木頭把, 再給個鐵疙瘩。怎么鉆孔連接上也要下工夫。最后把錘子弄好,已經(jīng)累得暈了,釘子的問題都沒勁解決。舉個簡單例子,班門弄斧就當(dāng)笑話哈。QT里做什么都可以直接從Qwidget派生。QWidget本身已經(jīng)具有非常多通用功能。得到各種自定義窗口,或者把各種窗口組合成一個窗口,再與其他窗口用DOCK形式,SPLITTER等連接,種種可能性,QT只用一種composition模式,窗口套窗口,圓環(huán)套圓環(huán)娛樂城就OK了。強大的LAYOUT 自動布局引擎,也是LAYOUT套LAYOUT就可以,類似小孩子拼插板玩具。拼好小的,整成一個部件,再和其他部件拼接。 一個窗口, 往上丟一些CONTROL。然后把這個窗口再往其他夫窗口丟。之間的消息用SINGAL發(fā)一把,SLOTS 收一把。窗口所有可能的EVENT虛函數(shù)都是寫好的,用什么函數(shù)實現(xiàn)什么函數(shù)就可以了。當(dāng)然這都是些淺顯的東西,實現(xiàn)簡單的功能。但就這么簡單組合起來,類似WORLD EDITOR,SHADER EDITOR, LEVEL EDITOR之類的需要對特定數(shù)據(jù)進行所見既所得的編輯,就夠用了。
跑題回復(fù):
暈~~暑假做了個嵌入式項目,我負責(zé)UI部分,才接觸到Qt。后來發(fā)現(xiàn) Qt 確實比較好用---Common sense啊~姚老大說了句心里話:MFC為什么難用?因為容易忘!確實,我的經(jīng)驗跟姚老大類似,每次做UI,都要重新學(xué)一次MFC,異常痛苦! 感覺Qt和Swing都很common sense,基本上懂得了大致開發(fā)方式后,以后每次拿出來,都只需要查閱API文檔!實在很HIGH。 |
# puzzy3d 發(fā)表于2006-11-30 15:26:00 IP: 218.249.204.*
一
個原來博士做面向?qū)ο笞詣訕?gòu)建的朋友(當(dāng)然,現(xiàn)在跑到USA
IBM-RATIONAL去了:)偶爾提起,設(shè)計模式也是在沒有辦法的情況,把構(gòu)建的任務(wù)交給個人.
把經(jīng)驗利用人傳授人的方法,使構(gòu)建模式"代代相傳". 于是出現(xiàn)了四巨頭的那本<設(shè)計模式>. 而且..還是從建筑業(yè)來的:)
當(dāng)初他的導(dǎo)師想搞專家系統(tǒng)+OO自動構(gòu)建.似乎是很復(fù)雜.成果不多. 從他們當(dāng)初搞的層面來看,設(shè)計模式也不過是種沒有辦法的辦法.
一個原來在UBI 上海的哥們,他們當(dāng)時用的UNREAL2引擎開發(fā)<細胞分裂2>
.當(dāng)時的背景,OO,設(shè)計模式風(fēng)起云涌("時髦"). 當(dāng)然UNREAL2也是C++的。UNREAL1
的大量匯編已經(jīng)極其稀少了。除了SSE或者MMX memcpy,MATRIX一把. 哥們說起UNREAL2作者大罵其他公司使用它引擎的 OO
/模式熱中者, 弄出一堆一堆的垃圾代碼, 還得讓他擦屁股。而UNREAL2本身是沒有什么花俏的OO技法的。
在我工作的環(huán)境和過去經(jīng)驗中,OO,模式之所以有用,
我的實際感受是,那就是給普通人用的。給智力一般能力一般經(jīng)驗一般的老百姓解決吃飯問題用的.
而那些大師或者對程序駕御能力極強的人,那些思維和方便之處被他們自然而然的使用.花過6個多月看了QUAKE2的所有編輯器和引擎代碼,里面的C
清晰簡潔甚至投機取巧.雖然從"藝術(shù)"角度或者"規(guī)范"角度那根本就是場噩夢.
而對于只能找到水平一般技術(shù)員的企業(yè),人還不停得流走, 想搞出一套邏輯復(fù)雜而且隨時得有人上手維護開發(fā)的軟件產(chǎn)品,實在是需要一些給普羅大眾輕松點,教條點的指引和工具. 也許OO就是對開發(fā)水平一般,但又要求質(zhì)量/時間的開發(fā)狀態(tài)的比較好的答案.
不
敢兒戲. 設(shè)計OO的人不是兒戲, 用OO的人也不是兒戲. 在C 時代,QUAKE 的作者有句名言: 最快的途徑,就是重寫一遍.
在C++時代,對于次世代3D游戲制作,UNREAL作者有句名言, 內(nèi)容制作的手段和和生產(chǎn)力必然會主導(dǎo)開發(fā)方向.
(所以倡導(dǎo)用更方便的工具寫編輯器.HOHO)
但沒有游戲開發(fā)者說OO是哪個游戲的救命稻草.或者OO用好了游戲就如何大賣.軟件問題解決好了對游戲來講充其量只是1/3.
所以并不是看輕看重的問題。 而是開發(fā)難度,可維護度, 開發(fā)速度/質(zhì)量,開發(fā)人員素質(zhì)和付出成本的平衡問題.
衡量軟件的標準似乎沒有這一條----它是否實現(xiàn)得優(yōu)雅/OO用得好.對于游戲,它是赤裸裸的娛樂產(chǎn)品。和DVD,KARAOK的性質(zhì)類似.
不知道銀行軟件,電信軟件,MIS, 財務(wù)軟件,嵌入式只做過SYMBIAN 3D ENGINE 也是用OPENGL接口. 在游戲制作業(yè),
可玩性和圖形效果是老大。3年,圖形技術(shù)硬件速度整個翻新. 每年SIGGRAPH,GDC 新PAPER層出不窮.
做為ENGINE提供商,在一定程度上考慮維護性是可以的。 但游戲開發(fā)是數(shù)據(jù)和內(nèi)容驅(qū)動. 生命期短暫.不需要從1.00 維護到9.00.
即便是ENGINE, 由于受到強硬件功能依賴性, 所以也是底層結(jié)構(gòu)不斷翻新.
這個時候,優(yōu)雅是不重要的,重要的是跟上趟兒......是不是OO作品不重要的,重要的是好玩不死機... |
一句 “簡直好用得痛哭流涕!”把我給忽悠得研究了半晚上Qt,現(xiàn)在終于看到hello world了,寫此文慶祝一下!
2007-07-21:
哈哈,這兒 Qt is best!!! gui庫大全啊