实现图片和文字同时存在的菜单栏

先看效果:
效果展示

效果展示

有需求需要完成上图效果。但自带的菜单栏虽然可以设置图片但不能不能设置图片尺寸。好像还不能同时显示图标和文字。于是只能自己动手实现一个。

说是菜单栏其实他是个工具栏。是不是伪装的很像菜单栏。具体实现方式是使用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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值