./cpp
#include "form1.h"
#include "ui_form1.h"
Form1::Form1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Form1)
{
ui->setupUi(this);
first = new QAction(tr("&first"), this);
second = new QAction(tr("&second"), this);
//first ->setStatusTip(tr("Show the application's About box"));
menu=new QMenu(this);
menu->addAction(first);
menu->addAction(second);
connect(first , SIGNAL(triggered()), this, SLOT(f1()));
connect(second , SIGNAL(triggered()), this, SLOT(s1()));
}
Form1::~Form1()
{
delete ui;
}
void Form1::on_pushButton_clicked()
{
QPoint pos;
pos.setX(0);
pos.setY(-42);
menu->exec(ui->pushButton->mapToGlobal(pos));
}
void Form1::f1()
{
qDebug("fffff");
}
void Form1::s1()
{
qDebug("ssssss");
}
./.h
#ifndef FORM1_H
#define FORM1_H
#include
#include
#include
//class QAction;
//class QMenu;
namespace Ui {
class Form1;
}
class Form1 : public QDialog
{
Q_OBJECT
public:
explicit Form1(QWidget *parent = 0);
~Form1();
private:
Ui::Form1 *ui;
QMenu *menu;
QAction *first;
QAction *second;
private slots:
void on_pushButton_clicked();
void f1();
void s1();
};
#endif // FORM1_H
./main
#include
#include "form1.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Form1 w;
w.show();
return a.exec();
}