【问题标题】:How to add a close button to a Qmenu?如何在 Qmenu 中添加关闭按钮?
【发布时间】:2012-12-17 09:15:12
【问题描述】:

如何在下方菜单顶部添加关闭按钮?

我想要一个像 windows 一样的关闭按钮,在它下面我需要下面提到的 A 到 D 设置菜单。 如何做到这一点?

void MyMenu::cppSlot()
    {
        xmenumain = new QMenu;
        xmenumain->
        xmenumain->addAction ( "A -> Setup" , this , SLOT (call_a()) );
        xmenumain->addAction ( "B -> Setup" , this , SLOT (call_b()) );
        xmenumain->addAction ( "C -> Setup" , this , SLOT (call_c()) );
        xmenumain->addAction ( "D -> Setup" , this , SLOT (call_d()) );
        xmenumain->popup( QCursor::pos() );
        //Change font and width
        xmenumain->setFont(QFont ("Courier", 10));
        xmenumain->setFixedWidth(250);
        //Colour setting
        QPalette palette=xmenumain->palette();
        palette.setColor(QPalette::Background, Qt::darkGray);
        xmenumain->setPalette(palette);

        //xmenumain->setAutoFillBackground(true);


        // Align the menu coordinates
        xmenumain->move(900,300);
        xmenumain->show();
        /*if(!(xmenumain->isEnabled()))
        {
            xmenumain->show();
        }*/
    }

【问题讨论】:

  • 它会做什么,关闭菜单或关闭应用程序?
  • 也许你可以使用QPushButton 然后QPushButton::setMenu
  • 它应该关闭菜单
  • 为什么要在 QMenu 上设置一个关闭按钮? QMenu 失去焦点后会自动隐藏。你可能想做一些不同于 QMenu(工具箱?)的东西

标签: qt qt4 qt-creator


【解决方案1】:

首先,创建一个QWidgetAction。然后创建一个按钮,按照您想要的方式进行设置,并将其添加到QWidgetActionQWidgetAction::setDefaultWidget()。最后,使用QMenu::AddAction() 将QWidgetAction 添加到您的菜单(采用QAction 的重载;QWidgetAction 派生自QAction。)

【讨论】:

  • 这不起作用。它创建一个具有不可见背景的菜单项。除非在“按照你想要的方式设置”中有更多的步骤比 setText/setIcon 更恶作剧。
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 2021-01-25
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2013-06-27
相关资源
最近更新 更多