gpt4 book ai didi

c++ - qt c++如何再次删除和添加小部件

转载 作者:行者123 更新时间:2023-11-28 04:10:44 25 4
gpt4 key购买 nike

我想替换基于组合框的小部件。我在组合框中有两种类型,这是这些类型的函数:

void ThemeWidget::renderModeGraph() {
clearMode();

//create charts
QChartView *chartView;

chartView = new QChartView(createChart());
m_ui->top_left_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->top_right_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->bottom_left_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->bottom_right_graph->addWidget(chartView);
m_charts << chartView;
}

void ThemeWidget::renderModeGraphStar() {
clearMode();

//create charts
QChartView *chartView;

chartView = new QChartView(createChart());
m_ui->top_left_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->top_right_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->bottom_left_graph->addWidget(chartView);
m_charts << chartView;

chartView = new QChartView(createChart());
m_ui->bottom_right_graph->addWidget(chartView);

m_charts << chartView;
}

我在模式切换之间调用函数 clearMode,这里是:

void ThemeWidget::clearMode() {
if (!m_charts.isEmpty()) {
m_ui->top_left_graph->removeWidget(m_charts[0]);
m_ui->top_right_graph->removeWidget(m_charts[1]);
m_ui->bottom_left_graph->removeWidget(m_charts[2]);
m_ui->bottom_right_graph->removeWidget(m_charts[3]);
m_charts.clear();
}
}

一开始我调用了 renderModeGraph 一切都在渲染,布局都很好,一切正常。但是当我改变模式布局结构时,它就会消失。我是 qt 和 c++ 的新手,所以不明白发生了什么以及如何解决这个问题,请帮助或提供重组布局的建议。

这里还有布局结构和一些截图。 Ui layout structure strating of programm After choosing <code>graph *</code> in combobox

最佳答案

问题是您有一个布局,每次您删除一个小部件时,布局都会发生变化。所以每次更改小部件时都需要修复它。要消除此问题,您可以使用包含图表小部件的 QWidget 容器创建基本 UI。每次更改小部件时,不是删除 QWidget 容器,而是删除图表并保留 QWidget。然后创建新的小部件并将其放入 QWidget 中。这样您的布局应该保持不变。

关于c++ - qt c++如何再次删除和添加小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57844407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com