QT中删除按钮

Deleting button in Qt

本文关键字:按钮 删除 QT      更新时间:2023-10-16

在C 和QT中编写学校项目。它应该是块编辑器(例如draw.io(。我将块作为按钮生成,然后将它们设置为网格(下面的代码(。但是,当我尝试删除某些按钮时,整个窗口就会关闭。我该怎么做才能仅删除一个按钮?

void MainWindow::newBlock() {
    QPushButton *button = new QPushButton(
                tr("SUMblock%1").arg(mainGrid->count())
                );
    QMenu *buttonMenu = new QMenu(this);
    buttonMenu->addAction(editBlockAction);
    buttonMenu->addAction(deleteBlockAct);
    button->setMenu(buttonMenu);
    mainGrid->addWidget(button, posX, posY);
}
void MainWindow::createActions() {
    deleteBlockAct = new QAction(tr("Delete block"), this);
    connect(deleteBlockAct, &QAction::triggered, this, &MainWindow::deleteBlock);
}
void MainWindow::deleteBlock() {
    this->close(); //have no idea what to put here
}

您是否考虑使用qlayout中的删除窗口小部件?

另外,如果您不需要完全删除它,则可以隐藏按钮。

自然,您需要有一个指向按钮要执行的指针,但是由于我不知道您确切地确定该按钮要删除的按钮可能范围从简单地保留按钮列表,请通过FindChildren搜索右键,使用lambda功能等