【问题标题】:How do you display a QChartView in a Custom Widget?如何在自定义小部件中显示 QChartView?
【发布时间】:2016-12-31 20:59:48
【问题描述】:

我有一个分配给 QChartView 的 QChart。在我一直关注的示例中,图表在 main.cpp 中显示为:

window.setCentralWidget(chartView);

在我的项目中,我想使用设计器,因此创建了一个自定义小部件,但它没有显示 QChart。我找到了一个示例,他们将视图分配给布局,然后设置布局,如下所示:

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

但这似乎与窗口中所有其他小部件的布局相混淆。如何让自定义小部件显示我的 chartView?

谢谢!

【问题讨论】:

    标签: c++ qt widget


    【解决方案1】:

    我就是这样做的。

    在您的 .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);
    

    【讨论】:

      【解决方案2】:

      我让类继承自QChartView(继承QWidget)而不是QWidget,然后做了:

      setChart(myChart);
      

      谢谢。

      【讨论】:

        猜你喜欢
        • 2018-01-12
        • 2011-12-25
        • 2021-11-08
        • 1970-01-01
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        • 2018-02-28
        • 1970-01-01
        相关资源
        最近更新 更多