在Visual Studio中使用QChart

4

我正在尝试使用Qt QChart绘制折线图。 我正在使用带有Qt 5.8的Visual Studio 2013。我创建了一个简单的QApplication。当我粘贴QLineSeries *series时,它会显示QLineSeries未定义。我该如何解决这个问题?

#include "QtGuiApplication2.h"
#include <QtWidgets/QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtGuiApplication2 w;

    QLineSeries *series = new QLineSeries();

    w.show();
    return a.exec();
}

你的工具链是什么?使用Qt VS Tools的Visual Studio吗? - diverger
2个回答

3

你需要在以下位置链接QT5Charts:

general properties
- Linker
  - Input
   - add the path: e.g. C:\Libraries\Qt\Qt5.7.0\msvc\lib\Qt5Chartsd.lib

我想你是否忘记添加命名空间了?
using namespace QtCharts;

如果您使用 CMake,只需将以下内容添加到您的 CMake 文件中:
find_package(Qt5Charts)
target_link_libraries(${targetName} Qt5::Charts)

@soeren- 我试过了,我将它添加到了附加依赖项中。 - amanda45
1
命名空间是什么? - Soeren

1
在我的情况下,我也将QtCharts库的所有#include都“undefined”。经过长时间的谷歌搜索,以下操作对我有所帮助(考虑使用Visual Studio 2019和Qt 5.15.2):
  1. 检查你的宏是否在(Project -> [Project] Properties -> C/C++ -> General -> Additional Include Directories)中有$(Qt_INCLUDEPATH_),并且在(Project -> [Project] Properties -> Linker -> Input -> Additional Dependencies)中有$(Qt_LIBS_)。它们应该已经包含了所有lib目录的路径。你可以通过按下附近的字段(箭头向下 -> 编辑... -> 宏>> -> [插入宏名称])来检查它。如果这些宏中有路径,则无需再添加它们,直接转到步骤3。如果没有,请转到步骤2。

  2. 在(Project -> [Project] Properties -> General -> Additional Library Directories)中添加一个公共路径,如C:\Qt\5.15.2\msvc2019_64\lib(对你而言可能略有不同)。有了这个精度,只能在(Linker -> Input -> Additional Dependencies)中提到相对路径,即Qt5Chartsd.lib。在(Project -> [Project] Properties -> C/C++ -> General -> Additional Include Directories)中写入绝对路径,如C:\Qt\5.15.2\msvc2019_64\include\QtCharts(同样可能不同)。

  3. 使用Qt VS Tools,在(Project -> [Project] Properties ->...)中有新的字段。你需要(Qt Project Settings -> Qt Modules)。与Qt Creator一样,需要添加一个新模块charts。在附近的(箭头向下 -> 选择模块...)字段中,甚至可以看到所有可以激活的模块。对我来说,最后有core;gui;widgets;charts

  4. 这个解决方案对我有效,但以防万一——将所有必需的动态库.dll添加到与你的.exe项目文件相同的目录中。.dll库在运行时加载,因此它们可能在某些情况下有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接