QToolButton设置弹出菜单
QToolButton与QButton相比,添加菜单必须设置弹出方式
弹出菜单的弹出方式有以下几种模式参考(参考Qt5.15.2参考文档):
enum QToolButton::ToolButtonPopupMode
Describes how a menu should be popped up for tool buttons that has a menu set or contains a list of actions.
示例:
QToolButton* ToolButton = new QToolButton(this);
QList<QAction *> lists;
QAction *Act111 = new QAction(“111”, this);
QAction *Act222 = new QAction(“222”, this);
QAction *Act333 = new QAction(“333”, this);
lists << Act111 << Act222 << Act333;
QMenu *menu = new QMenu(this);
menu->addActions(lists);
menu->setWindowOpacity(0.8);
menu->setObjectName("ToolButton");
menu->setStyleSheet("QMenu{border: 0px; background-color:rgb(0,0,0); color:white; margin:0px 0px;padding-top:10px;padding-bottom:10px;}"
"QMenu::item{background-color:rgb(0,0,0);margin:0px 0px;height:25px;}"
"QMenu::item:selected{background-color:#9F9F9F;color:white;}"
"QMenu::item:disabled{background-color:rgb(0,0,0);margin:0px 0px;color:#555555;}" //不使能的背景色跟随默认,但必须重新设置
);
ToolButton->setText(tr("测试"));
ToolButton->setIcon(QIcon("test.svg"));
ToolButton->setPopupMode(QToolButton::InstantPopup); //设置菜单弹出方式
ToolButton->QToolButton::setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//文字显示在图标下
ToolButton->setMenu(menu);