看板 Soft_Job 關於我們 聯絡資訊
※ 引述《iincho (世界的盡頭)》之銘言: : ※ 引述《descent ( 返無)》之銘言: : : 我自己是學習 C/C++, 目前加一點點組合語言 (這個真的很不熟), : : 而 GUI framework 我選擇 QT, 真的使用過的朋友, 一定會喜歡那種 : : 寫一次就可以在 ms windows, mac os, linux/X 上執行。 : : 投資報酬率很高。 : 其實學這種東西要看的是未來性,QT的確是很方便,但是長線來看不是很樂觀。 : 我個人是覺得不必對GUI跨平台有太多幻想,連Java都告訴你寫一次到處debug了, 你說的風險當然有可能, 所以我儘量可能考慮 opensource 的程式碼, 但 QT 有著商業力量更是保險, 若真的商業公司倒了, 還能寄望有高手接棒, 在不行就只好自己來了。 : 這些號稱跨平台的UI通常會碰到幾個問題: : 1. 不同平台有些行為不大一致,或者多多少少有些小bug。 : 2. 通常沒有原生刻出來的好看,不過這點qt做的算是不錯。 : 3. 可能跑起來速度比較慢,或者是要裝肥肥的runtime : 所以與其追求全面的跨平台,現在我通常都想辦法把UI的部份抽出來, : 程式核心的部分除非必要不然一律都用平台無關的寫法。 這個東西不容易做, 可以給個例子討論如何做這樣的分離嗎? 因為我覺得把 UI 和其他功能分開不是很容易。 我舉一個例子: 使用 linux svgalib, ms windows api, mac os api, X 來完成一個計算機。 這些 GUI toolkit 的使用方式可能差異很大, 要把 UI 抽出來可能 就已經是大工程。搭配上加減乘除程式碼, 要做到良好的分離真的不容易。 我覺得比較好的作法有一種是類似 smplayer 那種, 它是用 QT 實作 GUI, 所有功能則是呼叫 mplayer 這隻 command line 程式。 : 如果在龜毛一點底層的API自己再wrapper一層通常都可以應付大部分的狀況。 : 當年也是一天到晚在找一個大一統的UI framewrok,現在覺得乾脆把 : 東西抽出來重刻看起來還比較爽快.XD : 不過這是因為我學新東西很快,如果你不喜歡這樣可能會有不同的想法。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.132.16
leiyan:其實寫跨平台不見得比寫兩個單平台好 10/16 12:48
Ting1024:看來JAVA跟.NET這種有VM的最好...-_- 10/16 13:03
oomusou:聽起來smplayer這種方式挺好,還可支援command line 10/16 17:03
qrtt1:mplayer 有 slave mode,這就能用另一個程式 call 起來下指 10/16 17:03
qrtt1:令給它。這麼做 ui就能獨立成另一個程式了。 10/16 17:04
qrtt1:不過只是另一種設計的方式。其實跟 message queue/handler 10/16 17:05
qrtt1:的概念跟意圖是相仿的。希望透過訊息來取代實際語言的耦合。 10/16 17:05
qrtt1:剛好看到這裡有些不同平台移植的討論: 10/17 00:29
qrtt1:http://tinyurl.com/3taxgzb 10/17 00:29