2008-05-04
QT初体验
最近用QT开发自用词典,包括日韩、韩日、中英、英中、日日、英英词典,词汇量一定要全,有时间加TTS发音和屏幕取词功能。我需要日韩互相查询,英中互相查询,日语和英语每个单词的详细解释功能。我平时一般用金山词霸和广辞苑,偶尔查询网上的日韩词典。
这次日语词典选择了广辞苑,词汇量庞大,基本上没有查不到的。英汉/汉中词典选择了金山词霸里的简明英中词典,英语辞典选择了金山词霸里的美国传统词典,现在用金山词霸也就用这2个辞典。日韩/韩日选择了一个日本人开发的词典(KJDict)里的词库,日韩互查比较方便,很多词汇都一对一对应。有了这些词库,基本可以放弃其他词典了。
本来打算用MFC做,但后来知道QT,大概看了一下例子和文档,马上喜欢QT了。比起MFC、GTK的编程风格,QT 编程风格比较让人容易看懂,QString、QList、QMap、QFile、QRegExp功能强大易于使用,不直接用指针也可以做大部分事情,很像Java编程。尤其支持UTF-8良好,文本处理能力强,非常符合这个多语言词典。
目前花了半个月时间完成了主要词库转换、索引创建、词汇查询、基本界面,整体感觉良好,下面简单地总结一下我对QT的感受。
优点:
1. 入门容易、学习成本低。我以前主要做过PHP、Java、Perl、JavaScript这些非GUI编程,了解基本概念后就可以边查文档边写程序了。如果用MFC,可能要花更多时间去学习。
2. 跨平台效果好。本来是Linux下的工具库,在Windows下默认观感也不错。
3. 工具包数量多。该有的基本都有,大部分应用基本不需要自己实现功能了,看API直接调用就可以。
4. OPEN SOURCE。有些功能若有特殊需求,可以模仿源代码自己动手实现。我这个小程序排序有特殊需求,用QT提供的qSort无法完成。我就在qSort基础上追加了特殊处理。(qSort用goto语句实现了quick sort算法。)
5. 不需要虚拟环境,发布程序时带QT的几个dll文件(大部分程序只需要QtCore4.dll和QtGui4.dll)就可以。
缺点:
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
2. QT Designer不好用,离真正可见即所得差距很大。不过用QT Designer控件属性显示功能,分析各控件的属性还是蛮不错。
这次日语词典选择了广辞苑,词汇量庞大,基本上没有查不到的。英汉/汉中词典选择了金山词霸里的简明英中词典,英语辞典选择了金山词霸里的美国传统词典,现在用金山词霸也就用这2个辞典。日韩/韩日选择了一个日本人开发的词典(KJDict)里的词库,日韩互查比较方便,很多词汇都一对一对应。有了这些词库,基本可以放弃其他词典了。
本来打算用MFC做,但后来知道QT,大概看了一下例子和文档,马上喜欢QT了。比起MFC、GTK的编程风格,QT 编程风格比较让人容易看懂,QString、QList、QMap、QFile、QRegExp功能强大易于使用,不直接用指针也可以做大部分事情,很像Java编程。尤其支持UTF-8良好,文本处理能力强,非常符合这个多语言词典。
目前花了半个月时间完成了主要词库转换、索引创建、词汇查询、基本界面,整体感觉良好,下面简单地总结一下我对QT的感受。
优点:
1. 入门容易、学习成本低。我以前主要做过PHP、Java、Perl、JavaScript这些非GUI编程,了解基本概念后就可以边查文档边写程序了。如果用MFC,可能要花更多时间去学习。
2. 跨平台效果好。本来是Linux下的工具库,在Windows下默认观感也不错。
3. 工具包数量多。该有的基本都有,大部分应用基本不需要自己实现功能了,看API直接调用就可以。
4. OPEN SOURCE。有些功能若有特殊需求,可以模仿源代码自己动手实现。我这个小程序排序有特殊需求,用QT提供的qSort无法完成。我就在qSort基础上追加了特殊处理。(qSort用goto语句实现了quick sort算法。)
5. 不需要虚拟环境,发布程序时带QT的几个dll文件(大部分程序只需要QtCore4.dll和QtGui4.dll)就可以。
缺点:
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
2. QT Designer不好用,离真正可见即所得差距很大。不过用QT Designer控件属性显示功能,分析各控件的属性还是蛮不错。
- 13:26
- 浏览 (131)
- 评论 (24)
- 分类: XD Dictionary
- 进入论坛
- 相关推荐
评论
cauc_dg
2008-06-09
支持Qt,关注中
mathgl
2008-06-02
robbin 写道
jjcang 写道
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。
wxPython还有一个可视化所见即所得的IDE编程工具:boa-constructor,用来开发桌面应用程序太方便了。
http://boa-constructor.sourceforge.net/
boa貌似停了很久了。。我现在用的比较多的是 wx-glade,不过很多人不喜欢它的强制使用layout.
另外当导出.cpp文件的时候 如果在vc打开需要转码. 不然编译会报错
mathgl
2008-06-02
现在我只用 wxPython. 做一般的应用也够了。除非要很特殊的效果
robbin
2008-06-01
jjcang 写道
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。
wxPython还有一个可视化所见即所得的IDE编程工具:boa-constructor,用来开发桌面应用程序太方便了。
http://boa-constructor.sourceforge.net/
liangguanhui
2008-06-01
Qt, wxWidgets 都不错
jjcang
2008-05-30
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。
zjumty
2008-05-30
Qt的那个公司提供了一个VC2005的插件, 开发起来非常方便, 不过是商业软件, 要付费的!
mathgl
2008-05-29
Qt相对比较简单, 只要用qmake, 基本上所需的库都能自动link了。wxwidget如果不用
monolithic 模式的, 要自己link一堆lib,
以前我都是用自带的sample来修改的,实在不想费劲去找那些lib.
monolithic 模式的, 要自己link一堆lib,
以前我都是用自带的sample来修改的,实在不想费劲去找那些lib.
luolonghao
2008-05-28
xuby 写道
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。
可能我没表达清楚,我就用VC编译调试的。
luolonghao
2008-05-28
neora 写道
wxWidgets也是个不错的选择,使用上比MFC还是要优秀很多,代码风格也非常出色。跟QT比同样跨平台,缺省控件外观更Native一些。
Qt也在Windows上非常Native。
neora
2008-05-27
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
Qt的依赖不多?我倒是认为Qt要比wxWidgets还要累赘。
mathgl
2008-05-27
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
xuby
2008-05-26
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。
neora
2008-05-26
wxWidgets也是个不错的选择,使用上比MFC还是要优秀很多,代码风格也非常出色。跟QT比同样跨平台,缺省控件外观更Native一些。
laoshi
2008-05-26
luolonghao 写道
Eastsun 写道
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
Swing程序没写过,以前写过一点Android程序,QT的GUI库比Android GUI库还好理解。
熟悉Java后觉得STL命名方式真的很丑陋。
如此,直接用java好了,干嘛非要用C++。
luolonghao
2008-05-21
第一个可用版本完成并正在使用中,在Windows XP和2003上运行良好,下面LINK里有几张截图。
http://luolonghao.javaeye.com/admin/blogs/194639
http://luolonghao.javaeye.com/admin/blogs/194639
mathgl
2008-05-20
qt和gtk的消息处理其实很像。。都有个signal..一个slot
都是用macro实现..
不过qt的安装和部署貌似比gtk好些.
都是用macro实现..
不过qt的安装和部署貌似比gtk好些.
weicanhuang
2008-05-09
觉得swing事件好烦琐,比较喜欢gtk方式的。
luolonghao
2008-05-06
Eastsun 写道
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
Swing程序没写过,以前写过一点Android程序,QT的GUI库比Android GUI库还好理解。
熟悉Java后觉得STL命名方式真的很丑陋。
Eastsun
2008-05-06
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则







评论排行榜