Qt之相關疑問

喜歡程式設計嗎?想要一窺 KDE/Qt 程式設計的奧秘嗎?想要
學習 X Window 上的視窗程式設計嗎?歡迎各類關於 KDE/Qt、Qtopia、Qt/Embedded、QSA、PyQt 等各類心得討論。

版主: AceLan, Franklin

Qt之相關疑問

文章kito » 週六 5月 10, 2008 11:44 pm

討論區的各位大大好:

個人目前有心鑽研跨平台程式庫
就目前而言候選的有Qt與wxWidgets
而這陣子曾經嘗試著看著良葛格的教學
嘗試著使用了Qt
跑了一些範例後,效果頗令人滿意的
而其架構,signal/slot的機制,更是令人興奮
在興奮之餘下嘗試著自己寫了一些class使用了signal/slot
才赫然發現Qt採用了一些非標準的手段(moc)來達成這個機制
進而令我有些反感

所以轉而來討論區這邊問各位先進們
對於Qt的觀感為和?
對於此類擴充機制的接納度如何?
或著是有無曾經使用過wxWidgets與Qt的先進來幫我指點迷津?
kito
可愛的小學生
可愛的小學生
 
文章: 2
註冊時間: 週六 5月 10, 2008 11:42 pm

文章FourDollars » 週日 5月 11, 2008 12:56 am

請問一下所謂的"標準的手段"應該要如何達成這個機制呢?
FourDollars
懵懂的國中生
懵懂的國中生
 
文章: 188
註冊時間: 週五 8月 01, 2003 12:47 am

文章carl_tw » 週日 5月 11, 2008 2:38 am

正是因為這些手段,才使得程式寫起來比較輕鬆,不是嗎?
以下是 moc 的官方說明文件:
http://doc.trolltech.com/4.4/moc.html

wxWidgets 我也有用過,效能不是很理想,而且似乎沒有商業團體做後盾?
或是你也可以試試 Gtk+,只不過在 Windows 上執行緩慢不穩定,而且不是原生的圖形介面。

如果上述這些都沒有令你滿意的,那也沒辦法了,請你從中挑選一個,或是針對各平台分開寫。
carl_tw
可愛的小學生
可愛的小學生
 
文章: 19
註冊時間: 週三 4月 30, 2008 4:56 pm

Re: Qt之相關疑問

文章jserv » 週日 5月 11, 2008 7:30 am

kito 寫:才赫然發現Qt採用了一些非標準的手段(moc)來達成這個機制
進而令我有些反感


Microsoft 的 MFC、Borland 的 VCL 為了讓 framework 得以更為優雅,也大量採用「非標準」手段,與 Qt 這種跨平台機制相比,應該更讓您「反感」,畢竟是透過 compiler 的修改,援引專屬、非公開的特徵。

倘若這被視為「非標準」,那我實在不知道您對 Qt MOC 建出正規正舉的程式碼有何看法呢?實際上,這已經是最淬鍊的形式了,何妨不看業界標準 CORBA 如何實做呢?

工具如 Qt 者,就是滿足程式設計者的需求,如何有效克服問題,是工具設計者須思量之處,這不過是一種途徑罷了。
jserv
懵懂的國中生
懵懂的國中生
 
文章: 116
註冊時間: 週六 5月 08, 2004 7:36 pm

文章kito » 週日 5月 11, 2008 9:53 am

MFC非標準的部份?
指的是其中的Messagemapping嗎?
(報歉恕我知識貧乏,但是還是很好奇是哪部份)

不可否認的是
就是因為有moc的機制才使得signal/slot好用
我也大致上瞭解各位的看法了


而另外想請教carl_tw
撇開效能不說
在程式撰寫方面wxWidgets您的觀感為何?

不過不論如何,近期內會嘗試著去摸索wxWidgets以及Qt
屆時將發表個人的使用心得,還請個位批評指教
kito
可愛的小學生
可愛的小學生
 
文章: 2
註冊時間: 週六 5月 10, 2008 11:42 pm

文章jserv » 週日 5月 11, 2008 10:05 am

kito 寫:MFC非標準的部份?
指的是其中的Messagemapping嗎?
(報歉恕我知識貧乏,但是還是很好奇是哪部份)


比方說,MFC 與 OLE controls 銜接的實做部份,大量依賴 Visual C++ 專屬 extensions,當然,這是核心的實做,只是外頭覆蓋了薄薄的糖衣錠罷了。

諸如此類,太多 tricky + dirty 之處 :)
jserv
懵懂的國中生
懵懂的國中生
 
文章: 116
註冊時間: 週六 5月 08, 2004 7:36 pm

文章PCMan » 週日 5月 11, 2008 11:16 am

jserv 寫:
kito 寫:MFC非標準的部份?
指的是其中的Messagemapping嗎?
(報歉恕我知識貧乏,但是還是很好奇是哪部份)


比方說,MFC 與 OLE controls 銜接的實做部份,大量依賴 Visual C++ 專屬 extensions,當然,這是核心的實做,只是外頭覆蓋了薄薄的糖衣錠罷了。

諸如此類,太多 tricky + dirty 之處 :)

還不需要扯到這麼深
如果有看過 MFC 程式碼,裏面其實大量依賴很多 MS 才有的非標準語法
像是 __declspec(dllexport), #pragma, ...等等,非常多
很多地方利用 compiler 專屬的 #pragma 做一些很噁心的事情
包括在 source code 裏面加入 linker options.
尤其 wizard 生成的 source code 不用 #ifdef, #define, #endif 來避免重複 include,反而故意採用 #pragma once 這種 MS-only 的
還有很多奇怪的東西,像是 __stdcall, __cdecl, ... 總之真的很噁心

如果你用 VC++ 以外的 compiler 編譯 MFC,是完全不能編的
除了 Borland C++ (必須開啟 MFC 相容選項才能編譯)
PCMan
榮譽學長
榮譽學長
 
文章: 217
註冊時間: 週六 7月 02, 2005 10:46 am

文章carl_tw » 週日 5月 11, 2008 11:59 am

kito 寫:撇開效能不說
在程式撰寫方面wxWidgets您的觀感為何?

我覺得還是使用 Qt 比較容易一些,而且資料相當齊全,很快就入門了。
wxWidgets 更新速度不快,範例做得也沒有 Qt 好(個人感受),好處是不限定使用 C++,有多種語言可供選擇。
這些 Framework 各有優缺點,比較需要注意的是文件夠不夠多,功能反倒是其次。
當然最重要的還是您試用後的感受。
最後由 carl_tw 於 週日 5月 11, 2008 3:07 pm 編輯,總共編輯了 1 次。
carl_tw
可愛的小學生
可愛的小學生
 
文章: 19
註冊時間: 週三 4月 30, 2008 4:56 pm

文章caterpillar » 週日 5月 11, 2008 12:40 pm

在PTT的C_and_CPP版面,精華區的「C/C++特定平台程式開發->特定GUI套件->知名 GUI lib 簡評....」中,有針對GTK+, Qt, wxWidgets作了個比較。。。
良葛格學習筆記 - 我是一隻弱小的毛毛蟲,想像有天可以成為強壯的挖土機,擁有挖掘夢想的神奇手套。。。
頭像
caterpillar
可愛的小學生
可愛的小學生
 
文章: 8
註冊時間: 週四 2月 28, 2008 1:46 pm

文章70630515 » 週日 5月 11, 2008 12:53 pm

白貓黑貓....會抓老鼠的就是好貓=.=
白鳥黑鳥...會抓毛毛蟲的就是好鳥 一 一||

開個玩笑XD

:mrgreen:
我不自私,因為我開放(Open) , 我很快樂,因為我分享(Share)–Open Source
頭像
70630515
懵懂的國中生
懵懂的國中生
 
文章: 160
註冊時間: 週一 3月 13, 2006 9:15 am
來自: 北鼻存錢筒


回到 KDE/Qt 程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客