gpt4 book ai didi

c++ - Qt中的删除按钮

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

用 c++ 和 qt 编写一个学校项目。它应该是一个 block 编辑器(如 draw.io)。我生成 block 作为按钮并将它们设置为网格(下面的代码)。但是当我试图删除一些按钮时,整个窗口都关闭了。只删除一个按钮怎么办?

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
}

最佳答案

您是否研究过使用 remove widget function from qlayout

或者,如果您不需要完全删除按钮,您可以简单地将其设为 hide

当然,你需要有一个指向按钮的指针才能执行任何一项操作,但我不知道你是如何确定要删除哪个按钮的,这可能包括简单地保留按钮列表、通过 findChildren 搜索正确的按钮, 使用 lambda functions

关于c++ - Qt中的删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063372/

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