gpt4 book ai didi

qt - #include 在 Qt 4 中不起作用

转载 作者:行者123 更新时间:2023-12-04 13:13:38 25 4
gpt4 key购买 nike

一位开发人员使用 QtWidgets 向我们的软件添加了一项功能,据我所知,这是一项 QT5 功能。问题是我们的软件仍然是为 QT4 设计的,我们还不能迁移到最新版本的 QT。新功能在 QT5 中编译时效果很好,但在尝试使用 QT 4.8.5 编译时会出现以下错误。

src\qt\snapwidget.h:3: error: QtWidgets: No such file or directory
#include <QtWidgets>
^

是否有关于将 QtWidgets 反向移植到旧版 QT 的文档?也许有人在作为原生功能进入之前正在制作类似小部件的东西。

最佳答案

小部件不是 Qt 5 功能 .他们从第一天开始就在 Qt 中。

一般来说,我建议不要使用这样的每个模块包含。他们将为给定模块添加所有包含,从而显着提高您的编译时间。相反,您可以使用

#include <QClass>

也可以,并且只需要调整 .pro我在下面说的文件(一个地方,而不是修改所有源文件)。

您的问题是 Qt 4 中没有“QtWidgets”模块。Qt 4 中的小部件位于“gui”模块中。

因此,Qt 4 中的“等价”行是
#include <QtGui>

您可以使用 QT_VERSION使您的 C++ 代码在 Qt 4 和 5 中都可以工作:
#include <QtGlobal>
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
# include <QtWidgets>
#else
# include <QtGui>
#endif

.pro 中添加类似的逻辑用于链接 widgets 的文件模块。 Qt 4 和 Qt 5 默认只链接 coregui模块,但正如我刚才所说,这不会为您带来 Qt 5 中的小部件:
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets

关于qt - #include <QtWidgets> 在 Qt 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979798/

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