赞成。和利弊?你用了多久? jambi怎么样?
答案 0 :(得分:30)
我已经使用Qt多年来进行商业开发,并对此非常满意。
Qt的一个好处是它提供了大量的库以及GUI的东西(例如XML解析,线程,网络),所有这些都是一致的风格和所有多平台。这意味着我们很少需要使用其他库,尽管我们会对某些事情使用boost。
另一个非常重要的因素是国际化。在以前的基于MFC的应用程序中,我们必须为我们支持的两种语言维护2个本地化版本。在我们基于Qt的应用程序中,我们只有一个版本。
有一件非常有价值的事情是访问源代码,尽管这肯定不是Qt独有的。有几次,检查Qt源的能力已经解释了一些奇怪的行为,或者给出了如何实现某些目标的线索。
我们在Qt中发现了一些错误,其中一些在向Trolltech报告后已经修复。在其他情况下,他们建议解决。这些都相当模糊,并没有对我们的发展产生重大影响。
Qt的一个主要缺点是缺少用于商业应用的第三方库。但是,Qt相当完整,所以对我们来说这不是一个大问题,尽管这取决于你正在开发的应用程序类型。
我也没有使用过Jambi。
答案 1 :(得分:11)
我在七年的时间里在几个平台上用c ++做过的几个项目中使用了Qt。我认为它的效果非常好,对我来说,在Mac上开发一个像样的GUI应用程序肯定比在我当时不熟悉的语言(Objective-C)上使用更快。
我认为信号/插槽机制有点时髦但并不可怕。一旦你使用它一点,它不是一个显示塞子。连接的东西很容易搞砸(或者至少是这样)并且检查这些内容的返回总是好的,因为你的应用程序会快速前进并且不会告诉你它不起作用。
我从未使用过jambi。
答案 2 :(得分:8)
以下是我与Qt的一些优点和缺点:
<强>优点:强>
跨平台
我知道这个总是被使用,但是在使用Qt在Windows和Linux之间来回切换之后,我很难做到如何起床和运行。我认为这是因为我只使用Vim和Qt Designer这一事实
QMake
这是我最喜欢的Qt方面之一。在wxWidgets,FLTK等工作之后,我厌倦了搞乱不同的构建系统,我不想手动创建我的makefile。我现在正在使用除了Qt之外的其他任何东西,但我认为我正在慢慢地将Qt移动到CMake。然而,使用QMake很容易
QTestLib
我查看了其他一些C ++单元测试框架,当我使用QTestLib创建测试时,它感觉与NUnit(C#)非常相似,几分钟之内我就有几次通过测试。我还注意到创建自己的continuous integration环境非常容易
最接近Java和.Net的生产力
我听到/读到人们对C ++的最大看法是,“我可以用Java或.Net提高工作效率”。根据个人经验,我可以在Eclipse或Visual Studio加载之前使用Vim和Qt Designer获取在Qt中运行的应用程序的原型。我在Qt中得到了一组非常相似的库,我在.Net或Java中,如果它不存在,我可以利用现有的C ++代码。
的缺点强>:
价格
这是我现在能想到的最大因素。然而,如果我知道在不打电话给销售代表的情况下我需要节省多少美分,那么成本就值得每一分钱。我在他们的小企业折扣当天购买了许可证,然后它是值得的,我会支付三倍,我认为这是当前的价格。
随时随地开发商业许可证
我希望能够在任何平台上开发,但为另一个平台构建和销售。例如,在Linux上开发,然后在Windows上构建和部署,如果您只拥有Windows商业许可证。据我所知,您只能在拥有许可证的平台上开发和构建商业应用程序
供应商锁定
好吧,这更像个人骗局。我不喜欢被绑定到特定的供应商,因为我得到了公司方向和产品方向的追踪。 TrollTech是由诺基亚购买的,不管是好还是坏我都不知道,但这家公司的规模可以做坏事。
我想我现在已经完成了:)。哦,我没有使用过Jambi,但我真的很想做几个原型项目,以了解使用用Jambi开发的C ++插件是多么容易。特别是使用Jambi作为C ++插件的Web界面。
说实话,我没有多读,所以可能不可能或非常容易。
答案 3 :(得分:5)
我在以前的工作中使用过Qt。几年之前我只和Qt有过绝对的接触,所以我几乎是Qt newb。
当我开始时,我被告知选择我的语言和环境,但是跨平台支持是可取的。我尝试过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,所以无法发表评论。
答案 4 :(得分:3)
在C ++上,你唯一的其他选择是MFC和wxWidgets。 QT / wxWidgets主要是个人偏好。我认为QT是一个干净的设计,有很好的文档 如果你没有将它用于GPL,QT大约需要一个月的开发者工资。
答案 5 :(得分:3)
我已经使用Qt超过两年了。
我喜欢Qt的事情是:
我强烈推荐Qt Developer Days。如果你有机会参加,那就去做吧!那里有很多很好的非常有趣的谈话。
答案 6 :(得分:0)
Qt是一个非常好的库,但它有一个昂贵的单座开发人员许可证,所以它并不总是对所有项目都有用。
答案 7 :(得分:0)
不要使用它,但是......
临: QT有一个可选的3阶段布局,其中WX目前仅允许2个(我相信他们计划进行3阶段,但尚未使用它)。
使用布局的一个更大问题是静态文本和包装。 WX询问你的最小宽度/高度和屏幕分数有多大,QT可以选择你想要的宽度,你的X宽度需要多高。这使您可以更好地表达页面流。