25

我想添加QChart到表单中。但我在小部件框中找不到它。所以我在代码中创建了它。我怎样才能将它插入QWidgetQFrame或其他东西?

我想在 QtDesigner 中设置该小部件的区域。

4

2 回答 2

49

选项 1:提升

我想你的意思是插入一个 QChartView,因为 QChartView 继承自 QGraphicsView,这将是一个不错的选择,为此我们执行以下操作:

  1. 首先添加QT += charts.pro
  2. 将 QGraphicsView 放置到设计中。
  3. 右键单击 QGraphicsView 并选择Promote to...
  4. 执行上述操作时,会出现一个菜单,在菜单中应将其设置在QChartViewPromoted Class Name,然后QtCharts在 中Header file,然后按add按钮,最后按promote

部分步骤截图:

[3]

在此处输入图像描述

[4.1]

在此处输入图像描述

[4.2]

在此处输入图像描述

同样可以使用QWidget作为基础而不是QGraphicsView.

为什么选择一个或另一个小部件作为基础?

选择它是因为 Qt Designer 通过 moc 默认建立了某些属性,如果小部件没有该方法,则它不会编译。由于所有小部件都从 QWidget 继承,这将是任何新小部件在 Qt Designer 中推广它的基础。

在以下链接中,您将找到一个示例。


选项 2:QtChart 插件

另一种选择是编译QtChart插件QtDesigner,为此您必须从以下链接下载 5 个文件:

在此处输入图像描述

然后执行以下操作:

qmake
make
sudo make install

最后,您可以QtCharts::QChartView在 Qt Designer中访问

在此处输入图像描述

于 2018-01-21T02:05:00.077 回答
0

让我在这里为下面的答案添加一些东西(谢谢!)
我有一些额外的使用步骤

QTcreator 4.11.0

Ubuntu 20.04.3 LTS

首先,您不仅需要安装软件包

qml-module-qtcharts

还要包

libqt5charts5-dev

接下来,对于下面的“选项 1:升级”,您首先必须在输入后使用“添加”按钮

Promoted class name: QChartView

Header file: QtCharts

然后,您可以从“Promoted Classes”中选择它

最后,QTCreator 添加到您的 ui_mainwindow.h(例如)

#include <qchartview.h>

和用途

QChartView *graphicsView;

但它没有考虑,类型 QChartView 是在 <qchartview.h> 的“命名空间 QtCharts”中定义的。因此,找不到类型 QChartView。

我通过将“Central.h”添加到#include 为用户作为第一个#include 文件修复(破解)此问题,其中包含内容

#ifndef CENTRAL_H
#define CENTRAL_H

#include <QtCharts>
using namespace QtCharts;

#endif // CENTRAL_H
于 2022-02-12T12:47:43.737 回答