如何在 Qmenu 中添加关闭按钮?
Posted
技术标签:
【中文标题】如何在 Qmenu 中添加关闭按钮?【英文标题】:How to add a close button to a 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(工具箱?)的东西
【参考方案1】:
首先,创建一个QWidgetAction
。然后创建一个按钮,按照您想要的方式进行设置,并将其添加到QWidgetAction
和QWidgetAction::setDefaultWidget()
。最后,使用QMenu::AddAction()
将QWidgetAction 添加到您的菜单(采用QAction
的重载;QWidgetAction
派生自QAction
。)
【讨论】:
这不起作用。它创建一个具有不可见背景的菜单项。除非在“按照你想要的方式设置”中有更多的步骤比 setText/setIcon 更恶作剧。以上是关于如何在 Qmenu 中添加关闭按钮?的主要内容,如果未能解决你的问题,请参考以下文章
在MFC生产的基本对话框界面中,只有关闭按钮,没有最大最小化按钮,如何给它添加一个最小化按钮?