qt - 在再次使用之前清除 Qt 中的 GridLayout
问题描述
我在 mainwindow.cpp 的构造函数中将 8 个小部件添加到我的网格布局中,然后在按钮的功能中,我正在绘制 4 个新小部件,这将在前 8 个小部件的顶部创建 4 个小部件。我想做的是在添加 4 个小部件之前清除此网格布局...
这是我的构造函数代码:
for(int i = 0 ; i < 8 ; i++){
QChart *charts = new QChart();
charts->legend()->hide();
charts->createDefaultAxes();
std::string name = "Channel " + std::to_string(i);
charts->setTitle(QString::fromStdString(name));
QChartView *chartsView_1 = new QChartView(charts);
chartsView_1->setRenderHint(QPainter::Antialiasing);
if((i % 2) == 0){
col = 0;
}
else{
col = 1;
}
ui->gridLayout->addWidget(chartsView_1,i/2,col);
ui->gridLayout->setColumnStretch(col,1);
ui->gridLayout->setRowStretch(i/2,1);
}
这是我的按钮代码:
for(int i = 0 ; i < 4 ; i++){
QScatterSeries *series_1 = new QScatterSeries();
for(int k = 0; k < 115; k++){
series_1->append(pow(k,7),k);
series_1->setMarkerSize(4.0);
}
QChart *charts = new QChart();
charts->legend()->hide();
charts->createDefaultAxes();
charts->addSeries(series_1);
std::string name = "Channel " + std::to_string(i);
charts->setTitle(QString::fromStdString(name));
QChartView *chartsView_1 = new QChartView(charts);
chartsView_1->setRenderHint(QPainter::Antialiasing);
if((i % 2) == 0){
col = 0;
}
else{
col = 1;
}
ui->gridLayout->addWidget(chartsView_1,i/2,col);
ui->gridLayout->setColumnStretch(col,1);
ui->gridLayout->setRowStretch(i/2,1);
}
这是按下按钮后图片中的结果
解决方案
推荐阅读
- apache-spark - 为什么不允许在结构化流中对 DataFrame 进行多次转换(具有多个操作,如 Joins、Groupby 等)?
- mysql - 类型不匹配:推断类型 id
但 OnProdukItemClickListener 是预期的 - django - 如何在响应中提供图像变量?
- sqlite - SQLite 数据库/表突然无法创建
- react-native - 在 react-native-modal 中打开键盘时第一次无法单击保存按钮
- python-3.x - 使用python下载出现在网页上悬停的数据
- c++ - 理解遍历c ++中函数指针的这种语法
- html - 嵌套在标签中的输入所需属性的布尔玛样式
- java - 4 分钟后 Web 应用程序(Angular 8 和 Rest API)中的自动会话超时
- python - 从字符串中提取数字