QT之二级菜单

QT之二级菜单QT之二级菜单QT之二级菜单开场白效果图上代码可参考文章下代码结尾开场白今天我们一起来了解下,在我们QT中,二级菜单是如何实现的,在上篇我们学习了QT之系统托盘,QT之自定义菜单,QT之样式styleSheet。今天我们在这基础上,增加二级菜单的功能。效果图大家注意下这里箭头,不是用的默认效果哦,还是自定义的好看哈!O(∩_∩)下面这张图示是默认的。上代码voi

大家好,又见面了,我是你们的朋友全栈君。

QT之二级菜单

开场白

今天我们一起来了解下,在我们QT中,二级菜单是如何实现的,在上篇我们学习了QT之系统托盘QT之自定义菜单, QT之样式styleSheet。今天我们在这基础上,增加二级菜单的功能。

效果图

menu

大家注意下这里箭头,不是用的默认效果哦,还是自定义的好看哈!O(∩_∩)下面这张图示是默认的。
这里写图片描述

上代码

void SysTray::addSysTrayMenu()
{
    CustomMenu* customMenu = new CustomMenu(m_parent);
    customMenu->addCustomMenu("onGame", TRAY_ICON, tr("onGame"));
    customMenu->addSeparator();
    customMenu->addCustomMenu("onShow", TRAY_ICON, tr("onShow"));
    customMenu->addSeparator();
    customMenu->addCustomMenu("onQuit", CLOSE_MENU, tr("onQuit"));

    //子菜单添加和主菜单都是一样流程。
    CustomMenu* customSubMenu = new CustomMenu(m_parent);
    customSubMenu->addCustomMenu("onBottom", TRAY_ICON_ONDNF, tr("onBottom"));
    customSubMenu->addCustomMenu("onMusic", TRAY_ICON_ONMUSIC, tr("onMusic"));
    customSubMenu->addCustomMenu("onFire", TRAY_ICON_ONFIRE, tr("onFire"));
    customSubMenu->addCustomMenu("onCar", TRAY_ICON_ONCAR, tr("onCar"));
    customSubMenu->addCustomMenu("onLol", TRAY_ICON_ONLOL, tr("onLol"));
    //关键在这里,为QQ游戏添加子菜单。
    customMenu->getAction("onGame")->setMenu(customSubMenu);

    connect(customMenu->getAction("onShow"), SIGNAL(triggered(bool)), m_parent, SLOT(onShowNormal()));
    connect(customMenu->getAction("onQuit"), SIGNAL(triggered(bool)), m_parent, SLOT(onShowQuit()));
    customMenu->exec(QCursor::pos());
    delete customMenu;
    delete customSubMenu;
}
//自定义效果图
QMenu {
    border-width:2;
    border-image:url(:/Demo/Resources/common_menuborder.png);
}
QMenu::item { padding: 6px 24px 6px 28px;
}

QMenu::icon { padding: 0px 0px 0px 9px;
}

QMenu::separator { margin-left:24;
    margin-right:4;
    border-image: url(:/Demo/Resources/menu_separate.png);
}
QMenu::item:selected { border-image:url(:/Demo/Resources/menu_hover.png);
    padding: 6px 24px 6px 28px;
}
QMenu::item:hover { border-image:url(:/Demo/Resources/menu_hover.png);
    padding: 6px 24px 6px 28px;
}

QMenu::right-arrow { image: url(:/Demo/Resources/common/arrow_up.png);
}

可参考文章

QT之系统托盘
QT之自定义菜单
QT之样式styleSheet

下代码

QT二级菜单

结尾

只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135833.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode之 两数之和 题目解答C/python

    leetcode之 两数之和 题目解答C/python题目描述链接:https://leetcode-cn.com/problems/two-sum给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]解答C语言:…

    2022年5月30日
    50
  • STM32F4(用SysTick实现Delay函数)[通俗易懂]

    STM32F4(用SysTick实现Delay函数)[通俗易懂]STM32F4(用SysTick实现Delay函数)1,开发环境     1,适用芯片:STM32F4全部芯片    2,固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0     3,IDE:MDK5172,驱动源码     Delay.h文件/**************************************

    2022年5月7日
    99
  • qq浏览器手动屏蔽广告_qq好友屏蔽你的特征

    qq浏览器手动屏蔽广告_qq好友屏蔽你的特征现在很多软件的免费版都是有广告的,这让原本清清爽爽的界面变得乱七八糟,QQ虽然没有收费版,但是也要开了会员才能去广告。那不开会员如何屏蔽QQ广告呢?早在QQ2009Beta版的时候,可以通过删除一些文件让非会员也能实现去广告的目的,可惜从QQ2009正式版起增加了文件完整性检查,删除文件会导致QQ无法启动,并且要求重新安装。这里要介绍的方法,其实只要你对Windows操

    2022年8月10日
    7
  • 重磅!2021年国内Java培训机构排名十强出炉啦!

    重磅!2021年国内Java培训机构排名十强出炉啦!在IT行业当中,Java是最受欢迎的编程语言之一,作为最早出现的编程语言至今都没有倒下,可以说是YYDS!近年来学习Java的小伙伴也是越来越多,通过参加培训的方式来学习Java技术是最快最有效的方法。如今Java培训机构多如牛毛,到底该怎么选呢?下面小编就给大家发布2021年Java培训机构排名十强的名单来供大家参考:1、动力节点(http://www.bjpowernode.com/)动力节点是Java培训界“口口相传的Java黄埔军校”,成立至今12年,专注Java培训事业,为学员提供更.

    2022年7月7日
    57
  • informatik_bug report

    informatik_bug report
    使用工具:PowerCenterDesigner
    版本:DesignerVersion8.6.1HotFix100124412(R179D88)
    平台:CitrixWebInterface
    Bug:
    1、Mappings->ParametersandVariables…和Union[GroupPorts]里PortName粘贴未双击时,显示已改变,但偶尔失效。
    2、Union[GroupPorts]连线后顺

    2025年6月28日
    4
  • python for跳过下一个循环_python循环三次跳出循环

    python for跳过下一个循环_python循环三次跳出循环python中如何退出for循环Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。break语句:Python中的break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。br…

    2022年8月12日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号