先看效果:
有需求需要完成上图效果。但自带的菜单栏虽然可以设置图片但不能不能设置图片尺寸。好像还不能同时显示图标和文字。于是只能自己动手实现一个。
说是菜单栏其实他是个工具栏。是不是伪装的很像菜单栏。具体实现方式是使用QToolbar加QToolbutton两个类配合完成的。
首先是要现既有图标又有文字的效果,而QToolbutton提供了此实现方法,QToolbutton提供了设置图片和文字的显示和设置位置关系的属性,其中包括五种样式如下表:
故这里使用文字在图片旁边代码如下:
QToolButton *button=new QToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
然后就是实现下拉菜单了,QToolButton可以直接设置菜单实现下拉菜单效果,但需要设置菜单弹出方式,代码如下:
QMenu *menu=new QMenu("menu1",QToolButton);
button->setPopupMode(QToolButton::InstantPopup);
button->setMenu(menu);
于是QToolButton成了包含菜单的按钮,其中setPopupMode(QToolButton::InstantPopup);
为设置按钮点击时立即显示菜单。
最后把这些带有菜单的按钮塞进QToolbar并设置不可移动成了如假包换的菜单栏。
下面附上代码地址:https://download.csdn.net/download/weixin_43212394/12705429