QT之二级菜单

开场白

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

效果图

大家注意下这里箭头,不是用的默认效果哦,还是自定义的好看哈!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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
//自定义效果图
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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

可参考文章

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

下代码

QT二级菜单

结尾

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

http://blog.csdn.net/ly305750665/article/details/53769697

QT之二级菜单(二级菜单的箭头可以使用QSS设置图片)的更多相关文章

  1. 纯CSS3实现宽屏二级下拉菜单

    今天我们要来分享一款基于纯CSS3的宽屏二级下拉菜单,这款菜单的子菜单在展开的时候是很宽敞的,菜单项中可以自定义格式的内容,非常实用,也很大气.由于是用纯CSS3实现,所以这款下拉菜单不用运行Java ...

  2. web标准(复习)--4 纵向导航菜单及二级弹出菜单

    今天我们开始学习纵向导航菜单及二级弹出菜单,包含以下内容和知识点: 纵向列表 标签的默认样式 css派生选择器 css选择器的分组 纵向二级列表 相对定位和绝对定位 一.纵向列表纵向列表或称为纵向导航 ...

  3. 下拉的DIV+CSS+JS二级树型菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. js实现二级联动下拉列表菜单

    二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...

  5. 原生js实现二级联动下拉列表菜单

    二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...

  6. Web标准:四、纵向导航菜单及二级弹出菜单

    Web标准:四.纵向导航菜单及二级弹出菜单 知识点: 1.纵向列表 2.标签的默认样式 3.css派生选择器 4.css选择器的分组 5.纵向二级列表 6.相对定位和绝对定位   1)纵向列表 可以看 ...

  7. flash滚动图片遮住二级下拉菜单解决方法

    如上图所示,在进行排版时,如果不注意会遇到二级下拉菜单被下边的img图片遮住.此种情况在ie7 8 中出现. 解决方法:给二级下拉菜单添加z-index:9999;position:relative; ...

  8. Excel应用----制作二级下拉菜单【转】

    应用: 原始数据源是两列的源数据,那该如何制作二级下拉菜单, 当然可以将这两列的数据源,转换成上面的那种格式,再用上面的方法来制作. 今天教大学的方法是直接通过这种两列式的数据源来制作下拉菜单,如果A ...

  9. js实现菜单二级联动

    代码如下,以便自己以后方便查阅: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < ...

随机推荐

  1. 函数的引用透明性(referential transparency)

    1. 基础 初学程序设计时,比较容易混淆的两个概念是数学函数(math function)和程序中使用的函数. 在数学函数中 y=f(x),一个输入值有固定的输出值.例如,无论计算多少次,sinπ 的 ...

  2. Eclipse高效开发插件汇总

    以下是我整理的自己开发过程中的常用Eclipse插件,按字母排序: (1)    AmaterasUML         介绍:Eclipse的UML插件,支持UML活动图,class图,sequen ...

  3. 【LeetCode-面试算法经典-Java实现】【104-Maximum Depth of Binary Tree(二叉树的最大深度)】

    [104-Maximum Depth of Binary Tree(二叉树的最大深度)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a binary t ...

  4. Android多线程研究(3)——线程同步和互斥及死锁

    为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码: package com.maso.test; public class ThreadTest2 implements Runn ...

  5. IOS的后台执行

    写在前面给大家推荐一个不错的站点  www.joblai.com 本文章由央广传媒开发部 冯宝瑞整理.哈哈 http://www.cocoachina.com/bbs/read.php? tid=14 ...

  6. 《iOS Human Interface Guidelines》——Segmented Control

    分段控件 分段控件是一组线性段.每一个button相应的功能能够显示一个不同的视图. API NOTE 查看UISegmentedControl来学习很多其它关于在你的代码中定义一个分段控件的内容. ...

  7. 阿里云centos 6.5 32位安装可视化界面的方法

    http://www.dzbfsj.com/forum.php?mod=viewthread&tid=2702 http://www.mayanpeng.cn/?p=507 http://bl ...

  8. [Ramda] Get Deeply Nested Properties Safely with Ramda's path and pathOr Functions

    In this lesson we'll see how Ramda's path and pathOr functions can be used to safely access a deeply ...

  9. CSS学习小结

    接触了B/S的东西之后才发现自己须要学习的东西太多了.html.xml.JavaScript.jquery.HTMLdom.VBScript.ajax.jquery.json等等技术都是须要我们一一研 ...

  10. Android自定义控件View(三)组合控件

    不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...