作者HZYSoft (PCMan 2004)
看板MacDev
标题Re: [问题] 有人可以分享wxWidgets的使用心得吗?
时间Mon Oct 2 19:20:33 2006
※ 引述《gz ()》之铭言:
: 用了wx当作Framework开发了几个月了, 感觉还算不错
: 也自己写了几个widgets供专案使用.
: 官网是有几个Mac OS X的screenshots,
: 但还是想请教一下有没有人用wx来开发wxMAC的port?
没有想像中的无痛
: 可以分享一下字元编码与各平台间porting的经验吗?
: 有打算把程式 port到Mac上面用
: 麻烦的地方是charset, multithread, socket,
没错
: 还有在下本身"完全没有"Mac的"使用经验":p
1. 先检查你要用的 widget 在 wxMac 有没有实做
wxWidgest 中实做完成度最高的是 wxMSW,其次是 wxGTK, wxMac 我当初用的时候
还算满阳春的,因为开发者太少。
wx 官网有一张大 table,解说各种 widget 在各平台的支援状况,
要小心的陷阱就是.... 不是每个 class 在每个 OS 都有,
像 wxGTK 就没有 wxTabCtrl,因为底层 gtk+ 没有这个元件。
2. 你要先想好用啥 encoding, 是 unicode or ANSI,用 unicode 可能比较无痛
但是.... 即使是 unicode 版本,有些地方 wxMac 内部仍然使用 ANSI 实做
不保证全部都可以正常运作 (我不知道线再有没有改善)。
3. 如果你有写自己的视窗元件,要小心文字输入。 除 wx 提供的文字输入元件之外
其他视窗元件,包含你继承 wxControl 写的,都无法接收输入法的输入
这部份需要自己 hack wxMac,但是 hack 完仍然是不正常
4. wxMenu 部份,因为 mac 的选单跟别的系统都不一样,所以有些限制
如果你在 wxMenubar 建立之後,才修改里面的 menu 内容,可能会没效
选单内容是不会即时更新的....
5. wx 的字型选取对话框在 Mac 没有正确实做,无法使用中文字型 (不知道改善了没)
如果有需要请自己重写一个
6. wx 的 i18n 机制和 Mac 原生的机制格格不入,有可能不会按照你预期的方式运作
没有经过修正的 wxMac 我印象中无法正确载入 *.mo 翻译档来翻译介面。
我当初是自己用 hack wxMac 搭配 Carbon API 硬强迫他载入...
7. Mac 程式的打包和发行方式和 UNIX 程式完全不同,需要先阅读 Apple 的文件
正确的建立 Mac 要求的目录结构。 事实上弄起来相当麻烦.... 而且不保证可以动
让 wxMac 程式在 Mac OS X 正确变成一个 *.app 的 package 是大工程
没有 *.app 的结构的话,根据经验执行档视窗无法取得输入焦点
8. Mac 的 gcc 和其他平台有些参数并不能相容,请详阅其文件,视需要修改之
当初因为不明原因,在 XCode 当中无法正确 build,最後直接用 console 成功
9. socket 支援部份 wxMac 的可以正常使用,我有用过
10. multi-threading 部份我没有用过,但是我猜他是用 POSIX thread
所以应该要可以动
11. 如果要存取 Mac 的档案,可能要小心档案名称的编码和程式使用的编码可能不同
必要时可能要转 utf-8...... 用 Cocoa 可能没这种麻烦
12. 因为是使用 C/C++,所以只能透过 Carbon API 和 Mac 互动
无法使用比较先进的 Cocoa。 如果你有看过 Carbon API 的文件.....
说真的,那是我看过最难学的 API..... 比较会用到的可能是 CF 开头的
Core fundation 部份,复杂到非常夸张.....
我上次只是简单要做个取得执行档所在目录,就花了十几行吧
每个函数、参数,都有超过 20 ~ 30 个英文字元的长度,会死人....
以上,是个人过去被 wxMac 恶整,留下的残存记忆
wxMac 没有表面上看起来的好玩啊........
--
个人网页:
http://pcman.sayya.org/ 上面有自画像及各种联络资讯
PCMan 全系列 BBS 连线软体
http://pcman.ptt.cc/ http://pcmanx.csie.net/
新酷音输入法 for Windows
http://chewing.csie.net/
IE Tab Firefox plugin/extension
http://ietab.mozdev.org/
PCMan 油画作品集:
http://www.wretch.cc/album/album.php?id=pcman&book=1
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.59.75
1F:推 gz:太感谢了, 几乎道尽我所有的疑惑 10/02 19:46
2F:推 toki:啪啪啪啪 \O/ Good Job :P 10/02 19:49
3F:→ captdavince:天阿..太强了..本人出现>"< 10/03 17:28