首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Qt设计器中安装QChartView?

如何在Qt设计器中安装QChartView?
EN

Stack Overflow用户
提问于 2019-04-02 13:09:59
回答 1查看 4.2K关注 0票数 3

我的问题和这个话题中的问题是一样的:如何用Qt设计器在表单中插入QChartView?,但是我仍然无法解决它。我试图下载这个插件,但是在终端中输入qmake之后,我得到了以下错误:

未知测试函数: qtHaveModule

另一方面,我也不能使用第一个解决方案。在(不是Qt创建者)中,在哪里可以找到.pro文件?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-02 15:14:24

这个问题的出现通常是因为您正在使用较早版本的qmake配置您的项目,经常用于Qt4。

QtChart仅在Qt的现代版本中可用。如果使用的是QtCreator,以下是更新构建系统的步骤:

请转至:

代码语言:javascript
复制
Tools -> Options...

在此之后,请访问:

代码语言:javascript
复制
Kits -> Qt Versions

通常,您应该会看到安装的不同版本的Qt。检查是否可以看到Qt的现代版本,QtCharts 2.0是与Qt 5.6.0一起发布的,所以这是您的最低版本。

现在更新你的工具包。如果您正在编译桌面应用程序,请检查您的默认工具包或正在使用的工具包是否使用了正确的Qt版本。你会找到一个组合框,在那里你可以选择合适的。

之后,更新并再次运行qmake。

关于第二个问题,您不是在QtDesigner中编辑pro文件,而是在QtCreator中编辑pro文件。基本上,打开项目并添加Qt依赖项:

代码语言:javascript
复制
QT += charts

现在,打开您的mainwindow.ui文件或要在其中插入图表视图的文件,然后按照您链接的帖子的步骤操作。

示例:

这是一个经典的.pro配置:

代码语言:javascript
复制
QT += charts 
SOURCES += \ main.cpp

在主文件中,应该始终在顶部添加QT_CHARTS_USE_NAMESPACE。例如,要显示线状图,您可以这样做:

代码语言:javascript
复制
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>

QT_CHARTS_USE_NAMESPACE

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

    // Create your time series
    QLineSeries *series = new QLineSeries();
    series->append(0, 6);
    series->append(2, 4);
    series->append(3, 8);
    series->append(7, 4);
    series->append(10, 5);
    *series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) <<   QPointF(20, 2);

    // Configure your chart
    QChart *chart = new QChart();
    chart->legend()->hide();
    chart->addSeries(series);
    chart->createDefaultAxes();
    chart->setTitle("Simple line chart example");

    // Create your chart view
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    // Display into a main window
    QMainWindow window;
    window.setCentralWidget(chartView);
    window.resize(400, 300);
    window.show();

    return a.exec();
}

资料来源:Qt示例.

你只需要替换你的特例的最后一部分:

代码语言:javascript
复制
...

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ...
    // chartView is the name of the widget your promoted
    ...

    // Create your chart view
    ui->chartView->setRenderHint(QPainter::Antialiasing);
    ui->chartView->setChart(chart);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55475653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档