如何将QChartView显示在自定义小部件中?

3

我有一个赋值给QChartView的QChart。在我所遵循的示例中,图表在main.cpp中显示为:

window.setCentralWidget(chartView);

在我的项目中,我想利用设计师并创建自定义小部件,但它不显示 QChart。我找到了一个示例,在该示例中,他们将视图分配给布局,然后设置布局,如下:

mainLayout = new QGridLayout;
mainLayout->addWidget(chartView, 0, 0);
setLayout(mainLayout);

但是这似乎会影响窗口中所有其他小部件的布局。我该如何让自定义小部件显示我的图表视图?

谢谢!

2个回答

5
这是我做的方法。
在你的.h文件中:
QGridLayout* gridLayot;
QChart *chart;
QChartView *chartView;

在您的 .cpp 文件中的主构造函数中:

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

chart  = new QChart;
chartView = new QChartView(chart);
gridLayout = new QGridLayout(ui->centralWidget);
gridLayout->addWidget(chartView,0,0);

如果您想更改图表,可以按照以下步骤进行操作:


chart  = new QChart;
chartView = new QChartView(chart);
gridLayout->addWidget(chartView,0,0);

4
我把类继承自 QChartView(继承自 QWidget)而不是 QWidget,然后这样做:
setChart(myChart);

感谢您的选择。

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