Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to create right click menu of submenu?
Forum Updated to NodeBB v4.3 + New Features

How to create right click menu of submenu?

Scheduled Pinned Locked Moved Unsolved General and Desktop
3 Posts 3 Posters 3.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • sonichyS Offline
    sonichyS Offline
    sonichy
    wrote on last edited by
    #1

    I want a right click menu on submenu to delete QStringList item.
    alt text
    QStringList SL_bookmark_title,SL_bookmark_url;
    QMenu *submenu = new QMenu;
    for(int i=0;i<SL_bookmark_title.size();i++){
    QAction *action_bookmark_title = new QAction(submenu);
    action_bookmark_title->setText(SL_bookmark_title.at(i));
    action_bookmark_title->setToolTip(SL_bookmark_url.at(i));
    submenu->addAction(action_bookmark_title);
    connect(action_bookmark_title,SIGNAL(triggered(bool)),this,SLOT(gotoBookmarkURL(bool)));
    }
    action_bookmark->setMenu(submenu);

    https://github.com/sonichy

    joeQJ raven-worxR 2 Replies Last reply
    0
    • sonichyS sonichy

      I want a right click menu on submenu to delete QStringList item.
      alt text
      QStringList SL_bookmark_title,SL_bookmark_url;
      QMenu *submenu = new QMenu;
      for(int i=0;i<SL_bookmark_title.size();i++){
      QAction *action_bookmark_title = new QAction(submenu);
      action_bookmark_title->setText(SL_bookmark_title.at(i));
      action_bookmark_title->setToolTip(SL_bookmark_url.at(i));
      submenu->addAction(action_bookmark_title);
      connect(action_bookmark_title,SIGNAL(triggered(bool)),this,SLOT(gotoBookmarkURL(bool)));
      }
      action_bookmark->setMenu(submenu);

      joeQJ Offline
      joeQJ Offline
      joeQ
      wrote on last edited by joeQ
      #2

      @sonichy hi,friend,welcome

      you can reimplemented void QWidget::contextMenuEvent(QContextMenuEvent *event) in a subclass to receive widget context menu events.

      Add submenu functions

      QAction *addMenu(QMenu *menu)
      QMenu *addMenu(const QString &title)
      QMenu *addMenu(const QIcon &icon, const QString &title)

      code snippet:

      void Widget::contextMenuEvent(QContextMenuEvent *event)
      {
          QMenu menu;
          menu.addAction(tr("act 1"));
          menu.addAction(tr("act 2"));
      
          /** add submenu */
          QMenu* subMenu = menu.addMenu(tr("sub menu"));
          subMenu->addAction("sub act1");
          subMenu->addAction("sub act1");
      
          QAction*  selAct = menu.exec(event->globalPos());
          if(0 != selAct){
               ///< do something....
          }
          QWidget::contextMenuEvent(event);
      }
      

      Just do it!

      1 Reply Last reply
      5
      • sonichyS sonichy

        I want a right click menu on submenu to delete QStringList item.
        alt text
        QStringList SL_bookmark_title,SL_bookmark_url;
        QMenu *submenu = new QMenu;
        for(int i=0;i<SL_bookmark_title.size();i++){
        QAction *action_bookmark_title = new QAction(submenu);
        action_bookmark_title->setText(SL_bookmark_title.at(i));
        action_bookmark_title->setToolTip(SL_bookmark_url.at(i));
        submenu->addAction(action_bookmark_title);
        connect(action_bookmark_title,SIGNAL(triggered(bool)),this,SLOT(gotoBookmarkURL(bool)));
        }
        action_bookmark->setMenu(submenu);

        raven-worxR Offline
        raven-worxR Offline
        raven-worx
        Moderators
        wrote on last edited by
        #3

        @sonichy
        for the menu's main level you can create a custom QMenu sublass.
        Listen to the context menu event (as mentioned by @joeQ) in there and show a custom context-menu. Not sure if this works at all though.

        For the sub-menu level this is gonna be harder, since the sub-menu is created from the QAction and thus needs further implementations.

        --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
        If you have a question please use the forum so others can benefit from the solution in the future

        1 Reply Last reply
        4

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved