如何使用 Qt Designer 在窗体中插入 QChartView?

How to insert QChartView in form with Qt Designer?

我想在表格中添加 QChart。但是我在Widget Box中找不到它。所以我在代码中创建了它。我怎样才能将它插入 QWidgetQFrame 或其他地方?

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

选项 1:升级

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

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

部分步骤截图:

[3.]

[4.1]

[4.2]

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

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

之所以选择是因为Qt Designer通过moc默认建立了一些属性,如果widget没有那个方法就无法编译。由于所有小部件都继承自 QWidget,这将是任何新小部件在 Qt Designer 中推广它的基础。

在下面link你会找到一个例子。


选项 2:QtChart 插件

另一种选择是为 QtDesigner 编译 QtChart 插件,为此您必须从以下 link:

下载 5 个文件

然后你执行以下:

qmake
make
sudo make install

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

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

QTcreator 4.11.0

Ubuntu 20.04.3 LTS

首先,你不仅需要安装包

qml-module-qtcharts

还要包

libqt5charts5-dev

下一步,对于您下面的“选项 1:推荐” 1st 必须在输入后使用按钮“添加”

Promoted class name: QChartView

Header file: QtCharts

然后,你可以select它来自“Promoted 类”

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

#include <qchartview.h>

并使用

QChartView *graphicsView;

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

我通过向用户的#include 添加一个“Central.h”作为 1st #include 文件,内容为

来修复(破解)这个问题
#ifndef CENTRAL_H
#define CENTRAL_H

#include <QtCharts>
using namespace QtCharts;

#endif // CENTRAL_H