Qt 仿酷狗播放列表右键菜单

        		在使用QSS美化右键菜单的时候,遇到了很多细节上的问题,在网上查不到这些细节解决方法,甚是头疼,
        不改好自己心里又不爽,好在自己的查查改改最终解决了。我看别人的代码的时候最喜欢看图,不然没有兴趣。上效果:

在这里插入图片描述
遇到的问题:
1、使用setStyleSheet()函数设置QSS文件的时候,出现了二级菜单没有效果,如图中的排序菜单。解决方法:
通过不断的测试,最终使用qApp(包含头文件)来设置效果就显示出来了,qApp->setStyleSheet(Qss文件)。
2、在创建菜单分隔线时,只是分割文字那部分,图片那边没有分隔到,为了这个在网上查找了好久都没有找到,浪费了很多时间,头疼,后来发现可以在QSS中更改QMenu::separator的背景颜色background-color,就显示了,是因为addSeparator本就分两部分的,一部分是图片,另一部分是横线。
3、上图菜单中有两处子菜单,但是两处子菜单的显示间距不一样,所以需要各自设置,但是使用QMenu#menuSort对象选择器设置没有效果。**解决方法:**比如你的子菜单对象是menuSort,那么就直接使用menuSort->setStyleSheet()函数来设置不同子菜单的样式。

以上虽然简单,但是对于我这个新手来说,还是浪费了一些时间去查找和解决问题。方便就给个关注!放入gif图看看效果,按键的icon图片是自己抠酷狗的不知道怎么放上去。

20221116_181425

头文件

#include <QMenu>

class MListMenu : public QMenu
{
   
    Q_OBJECT
public:
    explicit MListMenu(QWidget *parent = nullptr);

signals:

public slots:
private:
    QMenu *menu_addsong;
    QMenu *menuSort;
    QAction *shareAct;
    QAction *act_delplayList;
};

实现文件

#include "mlistmenu.h"
#include <QDebug>
#include <QActionEvent>

MListMenu::MListMenu(QWidget *parent) : QMenu(parent)
  ,menu_addsong(nullptr)
{
   
    QAction *act_addplaylist=new QAction("新建列表");
    menu_addsong=new QMenu("添加歌曲");
    menu_addsong->addAction("添加本地歌曲...");
    menu_addsong->addAction("添加本地歌曲文件夹...");
    act_delplayList=new QAction(QIcon(":/images/btn_del (3).png"),"删除列表");
    QAction *act_reName=new QAction("重命名");
    QAction* act_emptyList=new QAction("清空列表");

    menuSort = new QMen
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值