QMenu菜單


QMenu是一個Top-Level的構件,menu.exec(pos)這里的pos總是相對於屏幕的。

示例1: 向上彈出

1 void Dialog::on_btn_clicked()
2 {
3     QPoint pos;
4     pos.setX(0);
5     pos.setY(-menu->sizeHint().height());
6     menu->exec(ui->btnOperator->mapToGlobal(pos));
7 }

效果:

示例2:

 1 void MainWindow::showOptionPopMenu()
 2 {
 3     this->setContextMenuPolicy(Qt::CustomContextMenu);
 4     QMenu menu;
 5     //添加菜單項,指定圖標、名稱、響應函數
 6     menu.addAction(QIcon(":/Image/upgrade.png"), QStringLiteral("檢測升級"), this, SLOT(onCheckUpgradeAction()));
 7     menu.addSeparator();
 8     menu.addAction(QIcon(":/Image/about.png"), QStringLiteral("關於軟件"), this, SLOT(onShowAboutAction()));
 9     //在鼠標位置顯示
10     QPoint pos;
11     pos.setX(this->x() + ui.titleBar->width() - 143);
12     pos.setY(this->y() + ui.titleBar->height() - 10);
13     menu.exec(pos); //QCursor::pos()
14 }

效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM