Qt自定义菜单项
来源:互联网 发布:范雎怎么读sui 知乎 编辑:程序博客网 时间:2024/05/21 19:40
Qt自定义菜单项
经常会看到一些菜单的部分项是由几个按钮组成的,如酷狗、QQ、360都有类似菜单,对于常规的菜单项,图标 + 文字 实现一个事件,很容易完成,那么怎么自定义菜单项呢?
Qt提供了支持,就是利用QWidget + QWidgetAction来完成。QWidgetAction继承自QAction,无法通过继承来实现一个界面,但它提供了setDefaultWidget来绑定一个界面,使用起来就更加方便了。
下面实现一个没有Action的菜单,并通过按钮显示出来:
void UserMenu::CreateMenu()
{
//播放项
QWidgetAction *pWdtAction = new QWidgetAction(this);
//播放项界面,继承自QWidget的类
PlayWidget *playWdt = new PlayWidget(this);
pWdtAction->setDefaultWidget(playWdt);
//创建一个包含声音调整控件的界面项
QWidgetAction *pVoice = new QWidgetAction(this);
QWidget *pVoiceWdt = new QWidget(this);
QSlider *pSlider = new QSlider(Qt::Horizontal);
QHBoxLayout *layout = new QHBoxLayout(pVoiceWdt);
layout->addWidget(pSlider);
pVoiceWdt->setLayout(layout);
pVoice->setDefaultWidget(pVoiceWdt);
//生成菜单栏
QMenu *pMenu = new QMenu(this);
pMenu->addAction(pWdtAction);
pMenu->addSeparator();
pMenu->addAction(pVoice);
pMenu->addAction(QStringLiteral("显示歌词"));
pMenu->addAction(QStringLiteral("锁定歌词"));
pMenu->addSeparator();
pMenu->addAction(QStringLiteral("选项设置"));
pMenu->addSeparator();
pMenu->addAction(QStringLiteral("登陆"));
pMenu->addAction(QStringLiteral("退出"));
ui.pushButton->setMenu(pMenu);
}
初略效果图如下:
阅读全文
0 0
- Qt自定义菜单项
- Qt---自定义菜单
- qt 自定义菜单
- QT之自定义菜单
- Qt如何自定义菜单
- Qt之自定义菜单(按钮菜单)
- Qt之自定义菜单(按钮菜单)
- Qt之自定义菜单(托盘菜单)
- Qt之自定义菜单(右键菜单)
- Qt之自定义菜单(按钮菜单)
- Qt之自定义菜单(右键菜单)
- Qt之自定义菜单(右键菜单)
- QT QButton to QMenu自定义菜单
- 自定义Eclipse菜单项
- 自定义Eclipse菜单项
- unity3D自定义菜单项
- Qt中菜单创建及自定义数据类型与QVariant互转
- qt 自定义图形项
- 图片的三级缓存
- hdu 1402 A * B Problem Plus || poj 2389 Bull Math
- 设计模式 Concurrency 之 Half_Sync_Half_Async 半同步半异步模式
- 关于是否为Ajax请求的判断
- 彩色网格
- Qt自定义菜单项
- JAVA调用Python及Shell
- mybatis集成spring操作数据库(以注解的方式)
- RocketMQ——客户端篇:Producer/Consumer的实例对象
- win10系统输入法图标不见了怎么找回
- Java:从字符串中提取字符的一系列方法及代码示例
- web前端网站合集(自己收集)
- Ubuntu16.04 配置虚拟主机
- MySQL学习笔记——20170808