Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-94375

Could not hover on QMenu in a modal dialog

    XMLWordPrintable

    Details

    • Platform/s:
      macOS

      Description

      Could not hover on a menu which is executed from a modal dialog.
      Here is the example code:

      class MyDialog : public QDialog
      {
      public:
          explicit MyDialog(QWidget* parent = nullptr) : QDialog(parent)
          {
              setMinimumSize(300, 300);
          }    
          virtual ~MyDialog()
          {
          }
      protected:
          virtual void mousePressEvent(QMouseEvent* event) override
          {
              QDialog::mousePressEvent(event);        
      
              if (event->button() == Qt::RightButton)
              {
                  QMenu menu;
                  menu.addAction("Action 1");
                  menu.addAction("Action 2");
                  menu.addAction("Action 3");            
      
                  menu.exec(QCursor::pos());
              }
          }
      };
      
      ///////////////////////////////////////////////////////////////////////////
      Widget::Widget(QWidget *parent)
          : QWidget(parent)
      {
          setMinimumSize(500, 500);
          QPushButton* btn = new QPushButton("Press", this);
          btn->setGeometry(0, 0, 60, 30);    MyDialog* dlg = new MyDialog(this);
          dlg->hide();    connect(btn, &QPushButton::clicked, dlg, &MyDialog::exec);
      }
      
      Widget::~Widget()
      {
      }
      

      1) Compile and run the above code

      2) Click on the press button to open the dialog.

      3) On the dialog, right click and try to hover on the actions.

      4) Notice it is not possible to hover

       

      The only workaround that I have found so far is to create the menu in modal dialog with a parent. For example:

      QMenu menu(this);
      

      This issue does not happen on a modeless dialog or widget

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            srutledg Shawn Rutledge
            Reporter:
            nanthiran2005 sivan nanthiran
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes