Я создал пользовательский интерфейс с помощью Qt Creator, в этом пользовательском интерфейсе есть только кнопка и виджет (назовем его соответственно button и char_container);
Мне нужно добавить диаграмму в программном виде внутри chart_container.
Я не изменил макет по умолчанию.
Я пробовал следующий код, но он не работает:
void MainWindow::button_slot(){
QtCharts::QChart *chart = new QtCharts::QChart();
QtCharts::QChartView *chartView = new QtCharts::QChartView(chart);
chartView->setParent(ui->chart_container);
this.repaint();
}
Лучший способ добавить виджет в другой — использовать макет, как я покажу ниже:
//on constructor
ui->chart_container->setLayout(new QVBoxLayout);void MainWindow::button_slot()
{
QtCharts::QChart *chart = new QtCharts::QChart();
QtCharts::QChartView *chartView = new QtCharts::QChartView(chart, ui->chart_container);
ui->chart_container->layout()->addWidget(chartView);
}
Других решений пока нет …