我有一个CustomContextMenu打开,我右键单击QTableWidget中的一个项目。菜单工作正常,但是,如果我单击其中一个选项菜单保持打开状态,如果再次单击相同的选项,它会再次执行操作并关闭菜单。只有其中一个选项才会出现这种情况。
我真的不知道为什么会发生这种情况,并且无法在网上找到有关为什么会发生这种情况的任何信息。如果有人知道什么可能导致它保持开放,那将非常感激。
QAction *newGroupAction = new QAction("Raise New", this);
QAction *deleteGroupAction = new QAction("Delete", this);
connect(newGroupAction, SIGNAL(triggered(bool)),this, SLOT(newItem()));
connect(deleteGroupAction, SIGNAL(triggered(bool)),this, SLOT(deleteItem()));
menu = new QMenu(this);
menu->addAction(newGroupAction);
if(ui->table->selectedItems().size() > 0 && adminPrivilege == true)
{
menu->addAction(deleteGroupAction);
}
menu->popup(ui->table->horizontalHeader()->viewport()->mapToGlobal(pos));
void TableWidget::deleteItem()
{
int ID = ui->table->item(ui->table->currentIndex().row(), 0)->text().toInt();
if(adminPrivilege == true)
{
QSqlQuery query;
query.prepare("DELETE FROM NOTES WHERE ID = (:id)");
query.bindValue(":id", ID);
query.exec();
QSqlQuery query2;
query2.prepare("DELETE FROM PAGES WHERE ID = (:id)");
query2.bindValue(":id", ID);
query2.exec();
}
else
{
QMessageBox error;
error.setWindowTitle("Error!");
error.setText("You do not have the correct privilege to delete");
error.exec();
}
load();
}