`
luolonghao
  • 浏览: 120096 次
  • 性别: 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控件属性显示功能,分析各控件的属性还是蛮不错。
分享到:
评论
9 楼 luolonghao 2008-05-21  
第一个可用版本完成并正在使用中,在Windows XP和2003上运行良好,下面LINK里有几张截图。

http://luolonghao.iteye.com/admin/blogs/194639
8 楼 mathgl 2008-05-20  
qt和gtk的消息处理其实很像。。都有个signal..一个slot
都是用macro实现..

不过qt的安装和部署貌似比gtk好些.
7 楼 weicanhuang 2008-05-09  
觉得swing事件好烦琐,比较喜欢gtk方式的。
6 楼 luolonghao 2008-05-06  
Eastsun 写道
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。


Swing程序没写过,以前写过一点Android程序,QT的GUI库比Android GUI库还好理解。
熟悉Java后觉得STL命名方式真的很丑陋。
5 楼 Eastsun 2008-05-06  
前天搞定了在Netbeans6.1下编译运行Qt项目,还没进一步尝试
不过初步印象觉得Qt4的组织结构与Swing挺像的,只不过消息传递机制不同(比Swing貌似更好)
其命名方式比丑陋的STL库好多了,比较符合JAVA中的习惯。
4 楼 pi1ot 2008-05-04  
delete 写道
luolonghao 写道
wzgme 写道
Qt是自绘窗口,所以窗口风格在各个平台基本一致。

Windows下建议用Qt4系列版本,VS+QT Integration,比Dev好。编译并不复杂,Qt环境bin目录设置,VS命令窗口中configure,qmake,nmake就ok(低版本要自己改makefile).

为了核心代码的移植方便,能用STL的还是用STL,Vector,Sort这些

现在Designer的功能就是一完全的布局设计,用xml描述,再用uic转成C++。


怪不得金山词霸取不到QT画出来的TEXT,本来没用WINAPI的文本绘制函数啊。
PS:不喜欢STL的命名,希望C++用Java的方式设计标准库。

Java的方式?什么方式?c++就是围绕template和指针展开的。


JavaProgrammingLanguageCodeStyle.cplusplus:

InlucdeHeadFile: <SystemStandardInpuOutputLibaryHeadFile>
Integer MainFunctionEntry() {
...
...
}
3 楼 luolonghao 2008-05-04  
wzgme 写道
Qt是自绘窗口,所以窗口风格在各个平台基本一致。

Windows下建议用Qt4系列版本,VS+QT Integration,比Dev好。编译并不复杂,Qt环境bin目录设置,VS命令窗口中configure,qmake,nmake就ok(低版本要自己改makefile).

为了核心代码的移植方便,能用STL的还是用STL,Vector,Sort这些

现在Designer的功能就是一完全的布局设计,用xml描述,再用uic转成C++。


怪不得金山词霸取不到QT画出来的TEXT,本来没用WINAPI的文本绘制函数啊。
PS:不喜欢STL的命名,希望C++用Java的方式设计标准库。
2 楼 wzgme 2008-05-04  
Qt是自绘窗口,所以窗口风格在各个平台基本一致。

Windows下建议用Qt4系列版本,VS+QT Integration,比Dev好。编译并不复杂,Qt环境bin目录设置,VS命令窗口中configure,qmake,nmake就ok(低版本要自己改makefile).

为了核心代码的移植方便,能用STL的还是用STL,Vector,Sort这些

现在Designer的功能就是一完全的布局设计,用xml描述,再用uic转成C++。

1 楼 bohemia 2008-05-04  
支持QT.
QT在GUI库里面,比较优秀.学习了.

相关推荐

    播放器制作初体验: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