iMenu = new MyMenu(this); // мое контекстное менюiMenu->addAction(name, this, SLOT(onActionOpen())); //ok, все работает, ..и нажатие кнопок мышиiSubmenu = static_cast<MyMenu*> (iMenu->addMenu(name2));iSubmenu->addAction(name3, this, SLOT(onActionOpen())); //акция работает, нажатие кнопок мыши нет
void MyMenu::mousePressEvent(QMouseEvent* ev){ if(ev->type() == QEvent::MouseButtonPress) { if (ev->button() == Qt::LeftButton) { QMenu::mousePressEvent(ev); } else if (ev->button() == Qt::RightButton) { //мой код для правой кнопки здесь } }}
iSubmenu = static_cast<MyMenu*> (iMenu->addMenu(name2));
MyMenu *MyMenu::addMenu(const QString &name){ MyMenu *menu = new MyMenu(name); return menu;}
iSubmenu = qobject_cast<MyMenu*> (iMenu->addMenu(name2));iSubmenu = static_cast<MyMenu*> (iMenu->addMenu(name2));
iMenu = new MyMenu(this); iMenu->addAction(name, this, SLOT(onActionOpen())); iSubmenu = new MyMenu(name2);iMenu->addMenu(iSubmenu);iSubmenu->addAction(name3, this, SLOT(onActionOpen()));
MyMenu* MyMenu::addMenu(const QString& title){ MyMenu* subMenu = new MyMenu(this); QAction* act = QMenu::addMenu(subMenu); act->setText(title); return subMenu;}
C++ (Qt)iSubmenu = new MyMenu(name2, this);iMenu->addMenu(iSubmenu);