【问题标题】:Can't include <QtWidgets>不能包含 <QtWidgets>
【发布时间】:2019-08-07 12:49:24
【问题描述】:

我正在尝试在 Visual Studio 15 2017 中链接 Qt5。

我已为其他 (1) include 目录、(2) 库目录 和 (3) 依赖项 添加了路径和文件引用在属性页中。

我可以通过像这样引用它们的路径来包含头文件

#include <QtWidgets/qpushbutton.h>

但是,我正在尝试构建的 github project 使用这条线

#include <QtWidgets>

Visual Studio 在这些行显示错误

E1696   cannot open source file "QtWidgets" 

在 Visual Studio 中使用 Qt VS 工具.pro 文件创建解决方案时,我可以包含 &lt;QtWidgets&gt;。但是如何将它包含在我现有的项目中,该项目不是从.pro 文件创建的。


解决方案MyProjectName 文件夹中放置一个 MyProjectName.pro 文件(使用 QT += core gui widgets)并使用 Qt VS Tools > 打开 Qt 项目文件 (.pro) 解决了这个问题。我现在可以包含&lt;QtWidgets&gt;。但考虑到 VS gui,这似乎不是正确的方法。

【问题讨论】:

  • 您链接的教程适用于 Qt 4。对于 Qt 5,您需要添加 QT += widgets to your .pro file
  • 小心,#include &lt;QtWidget&gt;,单,没有s,不是QtWidgets。
  • #include &lt;QtWidgets&gt; 是正确的。 (刚刚查看here 进行确认,但之前已多次将其用于示例代码。)它适用于 VS 的 Qt 5(带有 CMake 项目)以及 Qt 项目文件(如果在这两种情况下都正确启用了 Qt 小部件) .
  • @S.M.不,#include &lt;QtWidgets&gt; 很好。有一个“s”,因为它包含整个小部件模块。
  • 为什么您认为您的解决方案不正确? Qt 项目文件是提供某种可移植构建脚本的 Qt 方式。在 Linux 上,qmake 工具从中生成一个Makefile,可用于构建带有make 的可执行文件。 (对于 Qt VS Tools,我没有任何经验。我猜他们提供了一个类似的工具来从 Qt 项目中准备一个 VS 项目文件。)构建脚本的一个主题是设置适当的包含和库路径。跨度>

标签: c++ visual-studio qt include


【解决方案1】:

“QtWidgets”包含文件是“QtWidgets”目录中的一个文件。您的包含路径可能有“$(QTDIR)/include”之类的内容,但没有“$(QTDIR)/include/QtWidgets”。这就是为什么您的“QtWidgets/qpushbutton.h”示例有效,而不仅仅是“QtWidgets”本身。

查看您尝试包含的文件的完整路径可能会有所帮助(使用我的 Qt 5.5.1 安装):

C:\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtWidgets\QtWidgets

所以如果你的包含路径中有这个:

C:\Qt\Qt5.5.1\5.5\msvc2013_64\include

这只会让你进入 QtWidgets 目录,而不是 QtWidgets 文件。

你的包含路径中也需要这个:

C:\Qt\Qt5.5.1\5.5\msvc2013_64\include\QtWidgets

显然,请针对您安装的驱动器、Qt 版本和 MSVC 版本进行调整。

【讨论】:

  • 添加$(QTDIR)/include/QtWidgets 似乎是解决方案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 2020-04-06
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2011-04-15
相关资源
最近更新 更多