`
luolonghao
  • 浏览: 120099 次
  • 性别: Icon_minigender_1
  • 来自: Shanghai
社区版块
存档分类
最新评论

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控件属性显示功能,分析各控件的属性还是蛮不错。
分享到:
评论
29 楼 fxsjy 2009-03-11  
Qt4.5发布后更棒了,还自带了一个IDE : QtCreator,非常好用。
28 楼 lhyasia 2009-03-11  
jjcang 写道
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多


wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。


好像Nokia用LGPL2.1版权发布了QT4.5版本之后, wxWidgets基本就歇菜了。连wxWidgets的设计者都认为
wx今后可能没戏。QT的营销好得太多。没有钱砸不出来。感觉Nokia是用QT来对抗android sdk和iphone sdk的。
wxWidgets态度比较单纯, 我就是一个库, 你爱用不用。
27 楼 lhyasia 2009-03-11  
laoshi 写道
luolonghao 写道
Eastsun 写道
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。


Swing程序没写过,以前写过一点Android程序,QT的GUI库比Android GUI库还好理解。
熟悉Java后觉得STL命名方式真的很丑陋。


如此,直接用java好了,干嘛非要用C++。


Swing参考了QT的设计。 QT参考了Java的命名方式。
STL库本身并不丑陋。 至于STL的命名, 基本上和UNIX/C世界的命名差不多, 就是罗唆了点。
26 楼 luolonghao 2008-09-10  
graduate 写道
QT程序 能在 VC下编译吗 ?


可以。需要自己编译qt库,网上资料很多。
25 楼 graduate 2008-09-08  
QT程序 能在 VC下编译吗 ?
24 楼 cauc_dg 2008-06-09  
支持Qt,关注中
23 楼 mathgl 2008-06-02  
robbin 写道
jjcang 写道
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.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打开需要转码. 不然编译会报错
22 楼 mathgl 2008-06-02  
现在我只用 wxPython. 做一般的应用也够了。除非要很特殊的效果
21 楼 robbin 2008-06-01  
jjcang 写道
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多


wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。


wxPython还有一个可视化所见即所得的IDE编程工具:boa-constructor,用来开发桌面应用程序太方便了。

http://boa-constructor.sourceforge.net/
20 楼 liangguanhui 2008-06-01  
Qt, wxWidgets 都不错
19 楼 jjcang 2008-05-30  
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多


wx编译的时候有选项可以只生成一个大lib的。
wx的license好,加上wxpython做gui基本无敌了。
18 楼 zjumty 2008-05-30  
Qt的那个公司提供了一个VC2005的插件, 开发起来非常方便, 不过是商业软件, 要付费的!
17 楼 mathgl 2008-05-29  
Qt相对比较简单, 只要用qmake, 基本上所需的库都能自动link了。wxwidget如果不用
monolithic 模式的, 要自己link一堆lib,
以前我都是用自带的sample来修改的,实在不想费劲去找那些lib.
16 楼 luolonghao 2008-05-28  
xuby 写道
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。


可能我没表达清楚,我就用VC编译调试的。
15 楼 luolonghao 2008-05-28  
neora 写道
wxWidgets也是个不错的选择,使用上比MFC还是要优秀很多,代码风格也非常出色。跟QT比同样跨平台,缺省控件外观更Native一些。


Qt也在Windows上非常Native。
14 楼 neora 2008-05-27  
mathgl 写道
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多

Qt的依赖不多?我倒是认为Qt要比wxWidgets还要累赘。
13 楼 mathgl 2008-05-27  
wxWidgets需要为每个widget都指明ID 这个比较啰嗦. 我后来写了一个类似wxPython的wx.NewId()来解决这个问题.
.wxWidgets需要的lib太多, 如果是单独编译生成一堆.lib,要link还要找上半天。
不过胜在license好, 文档丰富, 第三方语言支持够多
12 楼 xuby 2008-05-26  
1. Windows上搭建开发环境比较麻烦。虽然用DevC++不需要自己编译QT库,但调试方面和VC没法比。官方没有提供用VC编译的二进制文件,只好自己动手编译了。而且QT各版本设置方法都不一样,以前版本要打一个补丁才可以用VC编译,最新版本不需要,可以直接编译。
×××××××××××××××××××××××××××××××××××××××
为什么不用VC来编译调试呢?很方便的。
说实话Qt和MFC的差别,可以认为相当于Windows XP和DOS1.0的差别。
11 楼 neora 2008-05-26  
wxWidgets也是个不错的选择,使用上比MFC还是要优秀很多,代码风格也非常出色。跟QT比同样跨平台,缺省控件外观更Native一些。
10 楼 laoshi 2008-05-26  
luolonghao 写道
Eastsun 写道
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。


Swing程序没写过,以前写过一点Android程序,QT的GUI库比Android GUI库还好理解。
熟悉Java后觉得STL命名方式真的很丑陋。


如此,直接用java好了,干嘛非要用C++。

相关推荐

    播放器制作初体验:FFmpeg +QT(1)

    然而,在这个初体验项目中,我们可能会选择直接使用QT的QOpenGLWidget或QPaintDevice来渲染解码后的视频帧。这样做的好处是可以更灵活地控制视频的显示,比如实现自定义的播放控制、画面缩放等功能。 创建播放器的...

    C++ Qt5 范例开发大全,qt5开发及实例,QT

    总的来说,《C++ Qt5 范例开发大全》是一本全面覆盖Qt5开发的教程,它以实例为引导,通过深入浅出的讲解,帮助读者全面掌握Qt5框架,无论你是初涉GUI编程还是寻求进阶,都能从中受益匪浅。通过阅读和实践书中的例子...

    基于Qt的信息管理系统设计.zip

    大部分大学一年级学生初接触到的是CC++计算机编程语言,而用CC++语言编写界面程序时多在黑屏白字的 application console下采用文字描述模拟菜单选择,学生体验感及成就感较差。而初学者只有一定的C++面向对象编程...

    VC6.0企业版+Qt3.3.4免安装版+FillTool动态链接文件.rar

    这个压缩包包含了VC6.0企业版和Qt3.3.4的免安装版本,这为用户提供了便捷的安装体验,无需进行繁琐的系统配置和注册表修改,只需解压即可开始使用。同时,还附带了VC6.0的卸载工具,确保在不使用后可以干净地从系统...

    qt3.rar_Linux QT_qt3 多线程_qt多线程

    QT3是Qt库的一个早期版本,它在20世纪末和21世纪初被广泛用于开发跨平台的GUI应用程序。这个“qt3.rar”压缩包显然包含了一些与Linux环境下使用Qt3进行多线程编程相关的资源,非常适合学习和参考。 在Linux系统中,...

    QT学习之路2(带书签)

    这种方法虽然复杂度较高,但对于追求最佳用户体验的应用来说是非常有价值的。 - **跨平台框架对比**:文中提到了另一个著名的跨平台GUI框架——wxWidgets,它与Qt在设计哲学和技术实现上有一定的相似之处,但也有...

    qt http下载工程

    总的来说,QT HTTP下载工程是一个利用Qt网络模块实现的高效、可靠的下载工具,其断点续传功能提高了用户体验,特别是对大文件下载场景非常有用。开发者需要理解Qt的网络编程以及文件操作相关知识,才能有效地维护和...

    QT专栏2 -Qt for Android

    本专栏将聚焦于如何在Android平台上使用Qt进行应用开发,让开发者能够利用Qt的强大功能为Android设备创建高性能、原生感的用户体验。 在开始Qt for Android开发之前,我们需要先安装一些必要的工具。首先,Java ...

    Qt开发课程第3课Qt的诞生和本质

    在1990年代初,挪威的Haavard Nord和Eirik Chambe-Eng两位工程师在寻找一种能够方便地开发用户界面的解决方案时,创建了Qt。起初,Qt是用C++编写的,它充分利用了面向对象的特性,使得开发者能够以高效且灵活的方式...

    Qt_MCAN_First_Version_One.zip_C++实现Can通信_QT 上位机 can_can qt_qt 上

    根据需要优化性能和用户体验。 总的来说,"Qt_MCAN_First_Version_One.zip"可能是一个包含了上述步骤实现的初版CAN通信上位机项目。通过分析和理解项目中的源代码,你可以学习到如何结合Qt的图形界面功能和C++的CAN...

    C++_GUI_Programming_with_Qt_4_中文版(第一章至第十章)

    Qt由挪威的Trolltech公司(现称为The Qt Company)创建,其创始人Harald Nord和Eirik Chambe-Eng在1990年代初为了满足跨平台GUI的需求而开始开发Qt。最初的目标是提供一个面向对象的、跨平台的GUI框架,以简化多平台...

    C++_GUI_Programming_with_Qt_4_中文版

    Qt的设计理念是提供一套面向对象的跨平台框架,使得开发者能够在Unix、Windows、Mac等操作系统上构建一致的用户体验。Qt的核心特性包括丰富的控件集合、事件驱动模型、信号与槽机制,以及强大的图形绘制能力。 书中...

    innosetup-5.6.1 Qt打包工具

    《InnoSetup-5.6.1:Windows桌面应用的高效打包神器》 在软件开发过程中,将编译好的程序打包成易于...因此,无论你是经验丰富的开发者还是初入行业的新人,InnoSetup都值得你纳入工具箱,为你的软件发布保驾护航。

    使用qtcreater做的c++基础作业

    4. **实践面向对象编程**:通过定义类和对象,体验C++的面向对象特性。 5. **应用文件I/O**:了解如何读写文件,实现数据持久化。 6. **学习错误处理**:掌握异常处理机制,提高代码的健壮性。 通过完成这份作业,...

    ubuntu系统一键安装QT,解决一切问题,解决官网提供的安装失败问题

    在Ubuntu系统上安装QT开发环境可能会遇到各种挑战,如依赖问题、版本不兼容或网络连接不稳定导致的在线安装失败等。...保持系统和QT Creator的更新,定期访问官方发布页面以获取最新版本和补丁,以确保最佳的开发体验。

    基于Qt的毕业生就业信息管理系统的设计与实现.zip

    总的来说,这个基于Qt的毕业生就业信息管理系统是一个实用的工具,它通过集成化的管理方式,提高了高校对毕业生就业信息的管理水平,同时利用C++和Qt的特性,保证了系统的稳定性和用户体验。通过这样的系统,不仅...

    qtopia-free-source-2.1.1.tar.gz_Free!_Qtopia_qt-embedded.pdf_qto

    通过qt-embedded-2.3.10平台的编译,开发者可以构建出符合特定需求的嵌入式操作系统,实现丰富的用户交互体验。同时,开源的特性鼓励了社区的创新和合作,推动了嵌入式领域的快速发展。无论你是初涉嵌入式领域的...

    summer QT 活动-执行公司.pptx

    ### Summer Tour 路秀...通过以上分析,我们可以看出“Summer QT”活动是一次精心策划的品牌推广活动,它不仅注重品牌形象的塑造,还强调与消费者的互动体验,旨在通过多种方式吸引顾客参与,提升品牌知名度和美誉度。

    你真的会写单元测试吗?TDD初体验

     初读之时,瞬间感受到了震撼,感觉和自己之前的开发流程全都不一样,之前是由始至终,而这种思想确实以终为始。后来一查这种思想早在前几年甚至前几十年就被提出了,进而被广泛运用到了敏捷开发中。看来是自己孤落...

    SilkTest2008初印象.pdf

    2. **SilkTest2008**则使用TrueLog Explorer来查看测试结果,尽管功能强大,但在用户体验上可能不如QTP那么友好。 #### 七、数据驱动测试支持 1. **QTP**通过DataTable支持参数化以及数据驱动测试,允许测试人员...

Global site tag (gtag.js) - Google Analytics