QT之二级菜单(二级菜单的箭头可以使用QSS设置图片)
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
可参考文章
下代码
结尾
只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
http://blog.csdn.net/ly305750665/article/details/53769697
QT之二级菜单(二级菜单的箭头可以使用QSS设置图片)的更多相关文章
- 纯CSS3实现宽屏二级下拉菜单
今天我们要来分享一款基于纯CSS3的宽屏二级下拉菜单,这款菜单的子菜单在展开的时候是很宽敞的,菜单项中可以自定义格式的内容,非常实用,也很大气.由于是用纯CSS3实现,所以这款下拉菜单不用运行Java ...
- web标准(复习)--4 纵向导航菜单及二级弹出菜单
今天我们开始学习纵向导航菜单及二级弹出菜单,包含以下内容和知识点: 纵向列表 标签的默认样式 css派生选择器 css选择器的分组 纵向二级列表 相对定位和绝对定位 一.纵向列表纵向列表或称为纵向导航 ...
- 下拉的DIV+CSS+JS二级树型菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js实现二级联动下拉列表菜单
二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...
- 原生js实现二级联动下拉列表菜单
二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...
- Web标准:四、纵向导航菜单及二级弹出菜单
Web标准:四.纵向导航菜单及二级弹出菜单 知识点: 1.纵向列表 2.标签的默认样式 3.css派生选择器 4.css选择器的分组 5.纵向二级列表 6.相对定位和绝对定位 1)纵向列表 可以看 ...
- flash滚动图片遮住二级下拉菜单解决方法
如上图所示,在进行排版时,如果不注意会遇到二级下拉菜单被下边的img图片遮住.此种情况在ie7 8 中出现. 解决方法:给二级下拉菜单添加z-index:9999;position:relative; ...
- Excel应用----制作二级下拉菜单【转】
应用: 原始数据源是两列的源数据,那该如何制作二级下拉菜单, 当然可以将这两列的数据源,转换成上面的那种格式,再用上面的方法来制作. 今天教大学的方法是直接通过这种两列式的数据源来制作下拉菜单,如果A ...
- js实现菜单二级联动
代码如下,以便自己以后方便查阅: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < ...
随机推荐
- swift项目第八天:自定义转场动画以及设置titleView的状态
如图效果: 一:Home控制器 /* 总结:1:设置登陆状态下的导航栏的左右按钮:1:在viewDidLoad里用三目运算根据从父类继承的islogin的登陆标识来判断用户是否登陆来显示不同的界面.未 ...
- php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)
php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...
- Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- 项目中使用Prism框架
Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Prism框架来构建基础的应用框架,并且 ...
- stm32的DMA基础,配置流程解析
这是手册上的流程 下面是对应的库函数 下面我们就按流程去看相应的寄存器: 步骤1里的寄存器, 进入下面的函数内部: 可以找到对应的操作: 再看下一个重要的寄存器: 再看下一个寄存器: 还有一种模式是: ...
- 【Heritrix基础教程之2】Heritrix基本内容介绍 分类: B1_JAVA H3_NUTCH 2014-06-01 13:02 878人阅读 评论(0) 收藏
1.版本说明 (1)最新版本:3.3.0 (2)最新release版本:3.2.0 (3)重要历史版本:1.14.4 3.1.0及之前的版本:http://sourceforge.net/projec ...
- [E2E] Robot Framework introduction
We will use demo project as an example, go though QuickStart repo. Install: First you should have py ...
- 文件流结尾的EOF详解
我学习C语言的时候,遇到的一个问题就是EOF. 它是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file) ...
- Windows 计算程序运行时间(高精度计时)
首先,认识一下clock()和GetTickCount(): 一.clock()clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t.在MSDN中,查得对clock函数定义如下 ...
- Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫
1. 安装与测试 进入 cmd(以管理员权限),使用 pip 工具,pip install requests 进行安装: 基本用法: >> import requests >> ...