gpt4 book ai didi

qt - 带有 QT 的现代外观 UI

转载 作者:行者123 更新时间:2023-12-04 10:18:35 26 4
gpt4 key购买 nike

我有一个用 C++/MFC 编写的向导应用程序,我想改进 UI。不同的按钮,更改对话框背景颜色等。我可以使用 QT 来改善外观还是应该更改为 WPF 和 C#?

最佳答案

Qt 5 基本上为您提供了五 (5!) 个 UI 工具包:

  • 模块类似于您在 1980 年代末/1990 年代初使用非常好的 2D 图形库获得的模块。您可以访问窗口的缓冲区和键/鼠标事件。其他一切都取决于你。这将是从“当时”移植现有应用程序的最快方式。图形原语很简洁,有字体、画家路径、渐变等,但没有小部件的概念,只有顶层窗口。您可以在该窗口内的任何位置绘制所有内容。

    提供的概念比典型的平台工具包(如 winapi 或 xlib)具有更高的抽象级别。就图形原语而言,它在精神上更类似于 Cairo 或 PDF。

    It is possible to parallelize the paintingQRasterWindowQWidget 相同的方式.
  • 小工具 模块为您提供 Qt4 风格的小部件和布局,具有可自定义的样式。这可能是最像 MFC 的模型,尽管它有更多的功能。这些小部件是所谓的外星小部件——这意味着它们没有本地窗口句柄。这使事情保持快速。您有大量预先编写的小部件来执行各种用户输入/输出。 It is possible to parallelize the painting of a widget. .
  • 声明性 模块,又名 Qt Quick 1,使用 QGraphicsView来自小部件模块的小部件以显示图形场景。这个场景是使用 QML 描述的。控件相当简陋,没有特定于平台的样式。无论您在哪里运行,它看起来都一样。对界面中的动画/流畅性有很好的支持。
  • 快速模块,又名 Qt Quick 2,使用新的基于 OpenGL ES 的场景图,可以在来自小部件模块的小部件或来自 gui 模块的原始窗口之上运行。使用 QML 描述场景。有一个桌面组件集,可为您提供平台样式的控件,如组合框、文本输入、表格等。新的场景图可以真正利用硬件,并且当您拥有繁重的动画 UI 时,其性能将优于小部件和 Qt Quick 1。这是走向 future 的道路。 Qt 5.2 引入了一个全新的 Javascript 引擎和 a new scene graph renderer ,具有更好的性能。 Qt 5.11 再次引入了新的 Javascript 引擎,速度提高了一倍。
  • 3D 通过 C++ 和 QML API 公开的模块是一个高级 3D 对象和场景渲染系统,专为交互式应用程序量身定制。它使用户与 3D 对象的交互变得容易。 C++ 和 QML API 是对等的,可以根据您的喜好使用 - 这与 Qt Quick 形成对比,Qt Quick 中只有 QML API 提供完整功能。

  • Qt Quick 1 和 Qt Quick 2 都可以以非常适中的性能成本包装现有的小部件,但是您确实会失去“ native ”QML 对象的一些优点。

    请注意,对 OpenGL 实现的需求与在您的系统上提供的实现是有区别的。在 Windows-XP 后的系统(Vista、7、8 等)上,您通常应该使用 Qt 5 及其在 DirectX 之上运行的 OpenGL ES 2 的 ANGLE 实现。只有在 Windows XP 上,您才被迫使用系统 OpenGL 驱动程序。

    Qt 是一个非常好的框架,即使对于非 gui 应用程序也可以使用。它具有良好的网络和文件 I/O、时间/日期的跨平台抽象,并提供了许多其他通用的好东西。比较容易 use it alongside ncurses , 例如。

    移植现有 MFC 代码的最快方法是继续使用 C++ 并使用带有 qtwinmigrate solution 的 Qt .后者是一个 BSD 许可的 shim 层,可以让您快速启动和运行。

    关于qt - 带有 QT 的现代外观 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104957/

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