gpt4 book ai didi

c++ - 在非 GUI 应用程序中使用 Qt,优缺点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:46 25 4
gpt4 key购买 nike

我正在使用 C++ 开发一个半实时系统。许多设计和逻辑都是基于事件的。在寻找 C++ 的一些事件框架时,我找到了 Qt。 Qt 中的信号/槽、状态机看起来非常适合我的情况。我更喜欢它们而不是提升。此外,QObject 系统有很多不错的功能,例如QObject Model, moc, parent-child object memory management etc. 但我对Qt知之甚少,这里有几个问题。

  1. 鉴于我现在对 c++/STL 相当熟悉,是否值得花时间学习 Qt?反正我不会用它最流行的部分,UI。

  2. 与 STL/boost 相比,Qt 的性能如何?由于应用程序是实时的,因此性能是关键要求。例如,我必须非常仔细地设计数据布局以最大化 CPU 缓存利用率。 Qt 提供的所有这些功能都会带来一些开销。会有多大影响?

  3. Qt开发中的多线程呢?我可以将 STL thread 或 pthread 与 Qt 对象一起使用,还是必须使用 Qt 提供的线程?好用吗?

最佳答案

  1. Qt非常值得学习。它肯定会提高您的开发速度。并且相对于boost框架,Qt拥有非常完整和易读的文档和示例代码,可以帮助您快速学习。

  2. 我假设您正在比较集合实现的性能。可以引用这个:http://blog.codeimproved.net/2009/12/qtl-or-stl/ .由于Qt更注重开发体验,它的部分功能相比STL/boost可能会有一些性能下降。但是,如果性能受到任何重大影响,您始终可以毫不费力地切换回 STL。

  3. QThreads 建立在 pthreads 之上,同时提供 OO 抽象。如果您正在使用 Qt 对象,我建议您使用 QThread。绝对好用,轻松开发是Qt的设计理念。

Qt的另一个好处是它保证在每个支持Qt的平台上,底层实现都是相同的,而有些平台只提供不完整或不同的STL支持,甚至根本不支持STL。 Qt 总是更容易预测,因为它由一个组织管理。

关于c++ - 在非 GUI 应用程序中使用 Qt,优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com