如何在 Qt Designer 中安装 QChartView?
How to install QChartView in Qt Designer?
我的问题与本主题中的问题相同: 但是我仍然无法解决。
我尝试下载插件,但在终端中输入 qmake 后,出现以下错误:
未知测试函数:qtHaveModule
另一方面,我也不能使用第一个解决方案。我在哪里可以找到 Qt Designer(不是 qt creator)中的 .pro 文件?
提前谢谢你。
出现这些问题通常是因为您使用旧版本的 qmake 配置项目,通常是针对 Qt4。
QtChart 仅在现代版本的 Qt 中可用。如果您使用的是 QtCreator,这些是更新您的构建系统的步骤:
转到:
Tools -> Options...
之后,前往:
Kits -> Qt Versions
通常您应该会看到安装的不同版本的 Qt。检查您是否可以看到 Qt 的现代版本,QtCharts 2.0 是与 Qt 5.6.0 一起发布的,所以这是您的最低版本。
现在,更新你的工具包。如果您正在编译桌面应用程序,请检查您的默认工具包或您正在使用的工具包是否使用正确的 Qt 版本。您会找到一个组合框,您可以在其中 select 正确的组合框。
之后,更新并运行再次qmake。
关于你的第二个问题,你没有在 QtDesigner 中编辑你的 pro 文件,你在 QtCreator 中编辑。基本上,打开您的项目并添加 Qt 依赖项:
QT += charts
现在,打开您的 mainwindow.ui
文件或您要插入图表视图的文件,然后按照您链接的 post 的步骤进行操作。
示例:
这是经典的 .pro 配置:
QT += charts
SOURCES += \ main.cpp
在您的主文件中,您应该始终在顶部添加 QT_CHARTS_USE_NAMESPACE
。例如,要显示折线图,您可以这样做:
#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 Example.
您只需要为您的特殊情况替换最后一部分:
...
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);
}
我的问题与本主题中的问题相同:
未知测试函数:qtHaveModule
另一方面,我也不能使用第一个解决方案。我在哪里可以找到 Qt Designer(不是 qt creator)中的 .pro 文件?
提前谢谢你。
出现这些问题通常是因为您使用旧版本的 qmake 配置项目,通常是针对 Qt4。
QtChart 仅在现代版本的 Qt 中可用。如果您使用的是 QtCreator,这些是更新您的构建系统的步骤:
转到:
Tools -> Options...
之后,前往:
Kits -> Qt Versions
通常您应该会看到安装的不同版本的 Qt。检查您是否可以看到 Qt 的现代版本,QtCharts 2.0 是与 Qt 5.6.0 一起发布的,所以这是您的最低版本。
现在,更新你的工具包。如果您正在编译桌面应用程序,请检查您的默认工具包或您正在使用的工具包是否使用正确的 Qt 版本。您会找到一个组合框,您可以在其中 select 正确的组合框。
之后,更新并运行再次qmake。
关于你的第二个问题,你没有在 QtDesigner 中编辑你的 pro 文件,你在 QtCreator 中编辑。基本上,打开您的项目并添加 Qt 依赖项:
QT += charts
现在,打开您的 mainwindow.ui
文件或您要插入图表视图的文件,然后按照您链接的 post 的步骤进行操作。
示例:
这是经典的 .pro 配置:
QT += charts
SOURCES += \ main.cpp
在您的主文件中,您应该始终在顶部添加 QT_CHARTS_USE_NAMESPACE
。例如,要显示折线图,您可以这样做:
#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 Example.
您只需要为您的特殊情况替换最后一部分:
...
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);
}