C++ (Qt)class PrimaryFrm: public QMainWindow{ };class CMainFrm:public PrimaryFrm{ Q_OBJECT......public slots: void actionTriggered(QAction *);};
C++ (Qt)void MainFrm::CreateMainMenuAndToolbar(){ QToolBar* ptb = new QToolBar("Sample ToolBar"); QMenu* pmFile = new QMenu("&File"); QMenu* pmHelp = new QMenu("&Help"); this->addToolBar(ptb); menuBar()->addMenu(pmFile); menuBar()->addMenu(pmHelp); QAction* a= new QAction("Caption",0); pmFile->addAction(a); ptb->addAction(a);QObject::connect(ptb,SIGNAL(actionTriggered(QAction*)),this,SLOT(frm_actionTriggered(QAction*)));QObject::connect(pmFile,SIGNAL(triggered(QAction*)),this,SLOT(frm_actionTriggered(QAction*)));} void MainFrm::frm_actionTriggered(QAction *A){................//2 раза }
C++ (Qt)connect( a , SIGNAL(triggered()) , SLOT(someSlot()) ); void MainFrm::someSlot(){//он выполнится один раз, если надо узнать экшион который послал то так QAction *a = qobject_cast<QAction*>(sender());}
C++ (Qt)connect( a , SIGNAL(triggered()) , SLOT(someSlot()) ); void MainFrm::someSlot(){//он выполнится один раз, если надо узнать акшион который послал то так QAction *a = qobject_cast<QAction*>(sender());}