............. QPushButton *but = new QPushButton(this); but->setText("Menu"); but->show(); QMenu *menu = new QMenu; menu->addAction("1"); menu->addAction("2"); menu->addAction("3"); but->setMenu(menu); ...................
// в *.h файле ...................... private: QMenu *menu; QPushButton *but; public slots: void menuShow(); ...................... // в *.ccp ...................... // в конструкторе but = new QPushButton(this); but->setText("Menu"); but->show(); menu = new QMenu; menu->addAction("1"); menu->addAction("2"); menu->addAction("3"); connect(but, SIGNAL(clicked()), this, SLOT(menuShow())); ...................... // описание слота void MainWindow::menuShow() { menu->exec(but->cursor().pos()); } .......................
C++ (Qt)inline QPoint CalcMenuPosBottom( QWidget * btn ){ return QPoint(QCursor:pos.x(), btn->mapToGlobal(btn->geometry().bottomLeft()).y() + 1);}