你使用Qt吗?你为什么使用它?


23

优点。和缺点?你用它多久?怎么样jambi?

10

我已经在几年的时间里在几个平台上用C++做过的几个项目中使用过Qt。我认为它运行得非常好,对我来说,在Mac上开发一个体面的GUI应用程序的速度肯定快于当时通过我不知道的语言(Objective-C)的速度。

我认为信号/插槽机制有点时髦,但并不可怕。一旦你使用它一点,它不是一个表演停止。连接的东西很容易弄糊涂(至少是这样),检查这些连接的回报总是很好的,因为你的应用程序会在它的路上快乐地走,而不会告诉你它不起作用。

我从来没有使用jambi。


0

Qt是一个非常好的库,但它有一个昂贵的每席开发者许可证,所以它并不总是有用的所有项目。

+2

Qt不是一个库,它是一个框架。 20 12月. 142014-12-20 03:32:34


3

在C++上,你唯一的其他选择是MFC和wxWidgets。 QT/wxWidgets在很大程度上是个人偏好。我认为QT是一个干净的设计,具有良好的文档。
如果您没有将其用于GPL,则QT花费大约一个月的开发者工资。

+1

当然,除MFC和wxWidgets之外还有其他选项!例如,有WTL! 24 9月. 082008-09-24 06:04:31

  0

WTL相当放弃了,并且为了舒适而离MFC太近 - 我不确定我会选择它用于除小工具以外的任何其他工具。 25 9月. 082008-09-25 00:46:56

+1

还有其他许多工具包。 Fltk,Gtk特别有C++绑定,但任何带C绑定的gui工具包都可以使用。 25 9月. 082008-09-25 21:56:57


28

我已经使用Qt好几年了,用于商业开发,并且一直非常满意。

Qt的一个好处是它提供了一大套库以及GUI的东西(例如XML解析,线程,网络),所有这些都以一致的风格和所有多平台。这意味着我们很少需要使用其他库,尽管我们对某些事情使用boost。

对我们来说另一个非常重要的因素是国际化。在以前的基于MFC的应用程序中,我们必须为我们支持的两种语言维护2个本地化版本。在我们基于Qt的应用程序中,我们只有一个版本。

  • Qt的翻译系统,采用语言学家易于使用,使支持多国语言方便(当然你还是要翻译这是很多工作的弦!)
  • 的GUI布局系统,其中小部件根据布局调整自己的大小使得一切都变得容易。在不同的语言中,字符串的长度是不同的。对于固定大小的小部件(如MFC),每个对话框都需要针对每种语言进行调整,否则部分标签会被切断。随着Qt他们调整自己。当然,有些情况下它不能正常工作,但它仍然使一切都变得容易。
  • QString在Unicode中执行所有操作,并且非常容易地处理来自不同编解码器的转换。

一件非常有价值的事情是对源代码的访问,尽管这当然不是Qt独有的。有几次检查Qt源码的能力已经解释了一些奇怪的行为,或者给出了一些线索如何实现某些东西。

我们在Qt中发现了一些bug,其中一些在向Trolltech报告后已经修复。在其他情况下,他们提出了解决方法。这些都很模糊,并没有对我们的发展产生重大影响。

Qt的一个主要缺点是缺乏用于商业应用的第三方库。但是,Qt相当完整,所以对我们来说它并不是一个大问题,但这取决于你正在开发哪种类型的应用程序。

我还没有使用Jambi。

  0

嗨大卫, 什么是您指的第三方库?你能为我提供一个例子吗? 24 8月. 102010-08-24 11:43:59

  0

我在一个月前开始使用Qt,使用新的Qt Quick。到目前为止,最大的抱怨是如果你犯了一个错误,它不会抛出异常或报告错误,只是没有做到你想要的而没有提示你做错了什么。还有很多其他严重的问题。 18 6月. 162016-06-18 23:34:28


3

我已经使用Qt两年多了。

我喜欢的东西Qt的是:

  • 轻松GUI编程(相对于 MFC),Qt设计
  • 尼斯容器类
  • 漂亮的图形场景框架
  • 优秀的有用的实例文档
  • 翻译支持
  • 良好的技术支持

我强烈推荐Qt Developer Days。如果你有机会参加,那就做吧!那里有很多非常有趣的谈话。


4

我在之前的工作中使用过Qt。在那之前的几年,我只有绝对最简单的Qt接触,所以我几乎是一个Qt新手。

当我开始时,我被告知选择我的语言和环境,但跨平台的支持是可取的。我尝试过Qt和Java,甚至为C#做了一些尝试。我给了自己两天的时间来评估每个选项。

也许我对C++开发人员的历史稍有偏见,但在花费每个选项的时间之后,Qt是唯一一个显示任何提示在没有漫长的学习曲线的情况下有用的提示。

随Qt和示例应用程序一起提供的文档使经验丰富的开发人员非常容易,但Qt初学者可以非常快速地启动和运行。我在试用期结束时完成了最终应用的UI原型/模型。使用Java/Eclipse,Java/SunStudio和C#/ VS.net我很难在那个时候发生任何不平凡的事情。

信号/插槽花费了一些时间,但并没有太坏,我写了一些简单的包装来断言连接无法阻止愚蠢的错别字停止应用程序。从工作。

我喜欢的另一件事是Qt几乎拥有了我需要的一切。你可以命名它 - 存储,网络,GUI,线程,容器--Qt有一个类来处理它。哪个恕我直言是重要的,因为混合图书馆有时会导致问题。

将源代码添加到Qt是一个很大的优势,只是为了简单的利益,而且它允许我使用我选择的编译器和设置来编译Qt,包括在开发过程中使用的调试版本。

我还发现奇趣科技的支持很不错。我在Qt上提出了一些错误,其中一个在我还在进行该项目时(只有6个月的工作)被固定和释放。

我记得的唯一消极的是调试Qt对象(使用VS)的困难 - 有一个VS的Qt插件可以检查Qt对象,但我使用的是VS的免费版本,插件不工作它。但这不是Qt的错。

我还没有使用jambi所以不能评论。


8

下面是我的一些优点和缺点的使用Qt:

优点:
跨平台
我知道这个人是始终使用,但使用Qt来回Windows和Linux之间的后,这真是太神奇了,我不得不做很少的事情来启动和运行。我认为这是由于我只在Vim中使用Qt Designer而得到的。

QMake
这是我最喜欢Qt的一个方面。在wxWidgets,FLTK等工作后,我厌倦了使用不同的构建系统,我不想手动创建我的makefile。我目前对Qt以外的任何东西都使用CMake,但我认为我正在慢慢地将Qt转移到CMake。不过,使用QMake很容易。

QTestLib
我看了几个其他的C++单元测试框架,当我使用QTestLib创建我的测试中,它NUnit的(C#)感到非常相似,并且在几分钟内我有几个测试通过。我也注意到,创建我自己的环境会非常容易。

最接近Java和.Net的生产力
我听到/读过的人对C++所说的最重要的事情是“我可以通过Java或.Net提高工作效率”。从个人经验来看,在Eclipse或Visual Studio甚至加载之前,我可以使用Vim和Qt Designer获得运行在Qt中的应用程序的原型。我也在Qt中得到了一组非常类似的.net或Java库,如果它不在那里,我可以利用现有的C++代码。


缺点
价格
这是我现在能想到的最大因素。但是,如果我知道在不打电话给销售代表的情况下我必须节省多少美分,那么这笔费用是值得的。我在当天有小额商业折扣的时候购买了一张许可证,当时这是值得的,我会支付三倍的费用,我认为这是现在的价格。

用商业许可证开发任何地方
我希望能够在任何平台上开发,但建立和销售另一个平台。例如,在Linux上开发,然后在Windows上构建和部署,如果您拥有Windows商业许可证。据我所知,您只能在您获得许可的平台上开发和构建商业应用程序。

供应商锁定
那么,这是更多的个人骗局。我不喜欢被绑定到特定的供应商,因为我可以通过公司的方向和产品方向追踪。 TrollTech是由诺基亚购买的,这是好还是坏,我不知道,但一家规模可以做坏事的公司。


我想我现在已经完成:)。哦,我还没有使用Jambi,但我真的很想做一对夫妇的原型项目,以发现使用C++与Jambi开发的插件是多么容易。尤其是使用Jambi作为C++插件的Web界面。

说实话,我还没有读过很多,所以它可能是不可能的或非常容易。

+4

什么费用?现在是LGPL,而GPL自第一天起就已经出现了! 30 3月. 092009-03-30 17:02:33

  0

最初它在Windows上是> 2500GBP /开发者,那么它就是Linux上的GPL(如果你正在做商业应用,没有多大的帮助)然后在一年前成为LGPL。 14 2月. 102010-02-14 02:08:22


0

不要使用它,但是......

临: QT有一个可选的3相布局,其中为WX只允许2目前(我相信他们打算做3相,只是还没有还在工作)。

使用布局的一个更大的问题是静态文本和包装。 WX询问你的最小宽度/高度有多大以及屏幕的部分大小,QT可以选择说你想要多宽,如果你的X宽,你需要多高。这使您可以更好地表达页面的流程。