void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu* menu = new QMenu;
menu->setAttribute(Qt::WA_DeleteOnClose);
menu->addAction(QIcon(":/icon"), tr("create"));
menu->addAction(QIcon(":/icon"), tr("retrive"));
menu->addAction(QIcon(":/icon"), tr("update"));
menu->addAction(QIcon(":/icon"), tr("delete"));
menu->popup(QCursor::pos());
}
值得注意的是需要设置 menu->setAttribute(Qt::WA_DeleteOnClose);
否则会有内存泄露。
测试不加此属性,每弹出一次菜单,都会泄露0.1MB
的内存,耗费还是比较大的.