当前位置: 首页 > wzjs >正文

湛江专业网站建设公司长沙建设工程官方网站

湛江专业网站建设公司,长沙建设工程官方网站,个人网站做贷款广告,深圳定制专业网站菜单栏QMenuBar 1. QMenuBar Qt 中的菜单栏是通过 QMenuBar 类型来实现的,一个主控件最多只能有一个菜单栏。一个菜单栏可以添加多个菜单,一个菜单又可以添加多个菜单项。 每个菜单又都是一个 QMenu 类型,每个菜单项都是一个 QAction。 2.…

菜单栏QMenuBar

1. QMenuBar

Qt 中的菜单栏是通过 QMenuBar 类型来实现的,一个主控件最多只能有一个菜单栏。一个菜单栏可以添加多个菜单,一个菜单又可以添加多个菜单项。

每个菜单又都是一个 QMenu 类型,每个菜单项都是一个 QAction

QMenuBar1

2. 使用代码添加菜单和菜单项

setMenuBar()QMenuBar 类型设置为 thisMainWindow)的菜单栏,再创建几个 QMenu ,使用 QMenuBaraddMenu() 添加菜单,再创建几个 QAction ,使用 QMenuaddAction() 将菜单项挂载到对应的菜单上。另外,addSeparator() 可以在菜单项的对应位置添加分割线。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QMenuBar* menubar=new QMenuBar();this->setMenuBar(menubar);QMenu* menu1=new QMenu("文件");QMenu* menu2=new QMenu("编辑");QMenu* menu3=new QMenu("构建");menubar->addMenu(menu1);menubar->addMenu(menu2);menubar->addMenu(menu3);QAction* action1 =new QAction("新建文件");QAction* action2 =new QAction("打开文件");QAction* action3 =new QAction("关闭文件");menu1->addAction(action1);menu1->addSeparator();menu1->addAction(action2);menu1->addAction(action3);}MainWindow::~MainWindow()
{delete ui;
}

QMenuBar2

3. 菜单快捷设置快捷键方法

在菜单的文本中增加一个 &[字母] ,如:

QMenu* menu = new QMenu("文件(&F)");

文件 这个菜单就可以使用快捷键 Alt + F 选中。实际这种快捷键添加方法是 Windows 系统提供的,在很多 Windows 的软件中都可以使用这种方式设置或使用快捷键。

4. 菜单添加子菜单

父菜单的指针使用 addMenu() 就可以将子菜单添加进该父菜单,当鼠标悬停到子菜单上时,就会展开子菜单的菜单项:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QMenuBar* menubar=new QMenuBar();this->setMenuBar(menubar);QMenu* parentMenu=new QMenu("父菜单");QMenu* childMenu=new QMenu("子菜单");menubar->addMenu(parentMenu);parentMenu->addMenu(childMenu);QAction* action1 =new QAction("子菜单项1");QAction* action2 =new QAction("子菜单项2");QAction* action3 =new QAction("子菜单项3");childMenu->addAction(action1);childMenu->addAction(action2);childMenu->addAction(action3);}MainWindow::~MainWindow()
{delete ui;
}

QMenuBar3

5. 菜单设置图标

注意,如果菜单是长在 QMenuBar 上的(即一级菜单),图标和文字不能同时显示,设置图标的菜单会只有图标能够显示出来。但长在 QMenu 上的二级菜单是能够图标和文字都一起显示的:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QMenuBar* menubar=new QMenuBar();this->setMenuBar(menubar);QMenu* parentMenu=new QMenu("文件");parentMenu->setIcon(QIcon(":/file.png"));QMenu* childMenu=new QMenu("文本文件");childMenu->setIcon(QIcon(":/txt.png"));menubar->addMenu(parentMenu);parentMenu->addMenu(childMenu);
}MainWindow::~MainWindow()
{delete ui;
}

QMenuBar4

可以看到 ”文件“ 的图标显示了但是文本消失了。

6. 菜单栏内存泄漏问题

如果 Qt 项目在创建时勾选了使用 ui 生成,那么在项目最开始就已经存在了一个菜单栏,如果我们此时使用代码新建一个 QMenuBar 并将其设置到 this 中,就会导致原有的菜单栏无法被析构释放。所以在自定义菜单栏时,最好使用:

QMenuBar menuBar = this->menuBar();

先获取原有的 QMenuBar ,再使用它更改成我们想要的效果,就可以避免内存泄漏。


文章转载自:

http://IpaTQ9kT.fktLr.cn
http://jTh4idER.fktLr.cn
http://Yw2tDZEJ.fktLr.cn
http://8y3g0Iq7.fktLr.cn
http://sP2jqbwz.fktLr.cn
http://KfM9OA1G.fktLr.cn
http://eTzjVTQl.fktLr.cn
http://O4uxlL4n.fktLr.cn
http://spPyfGho.fktLr.cn
http://7Vg6j3iQ.fktLr.cn
http://gHNUNuuS.fktLr.cn
http://L3zdIhxT.fktLr.cn
http://FoXXWNs0.fktLr.cn
http://VRHnP3S0.fktLr.cn
http://PASyd9Q1.fktLr.cn
http://dvEV14d6.fktLr.cn
http://JbNAqCsc.fktLr.cn
http://BkineCqu.fktLr.cn
http://hkbnf3UZ.fktLr.cn
http://0BpWW6Qc.fktLr.cn
http://HZbxyM2K.fktLr.cn
http://f4zn7xMl.fktLr.cn
http://7TFpQjWo.fktLr.cn
http://Wmim203T.fktLr.cn
http://WRvXYdj6.fktLr.cn
http://OZoyrQlH.fktLr.cn
http://w2u3vYd2.fktLr.cn
http://YplfM43F.fktLr.cn
http://bLpaUhB0.fktLr.cn
http://uWBb6NF1.fktLr.cn
http://www.dtcms.com/wzjs/618263.html

相关文章:

  • 莱芜网站优化有哪些免费域名怎么注册
  • 中国外协加工网免费wordpress建站seo好做吗
  • 企业免费网站模板谷歌推广
  • 图书网站建设源码wordpress和python
  • 松江团购做网站网站的题目
  • 湘潭网站建设是什么制造做网站
  • 抓取网站访客qq号码手机导航网站模板
  • 做面包有哪些网站知乎基于wap的企业网站设计与实现
  • 网站建设中网站图片如何修改免费制作宣传册的app
  • 做网站需求文档有必要 在线 网页 代理
  • 龙岗建站费用iis7.5添加网站
  • 建设机械网站机构国外在线设计平台
  • icp备案需要先建设网站么网页美工是什么
  • 企业介绍微网站怎么做的网站界面设计的发展趋势
  • 爱用建站官网营销网站建设公司推荐
  • 可信网站认证 费用提高网站订单转化率
  • 兰州网站建设推荐q479185700顶上wix和wordpress区别
  • 怎么邀约客户做网站北京专业网络直播制作
  • 网站用途说明肇庆市电商网站建设价格
  • 营销型网站设计房地产wordpress购物车保存
  • 制作企业网站的代码分析网站示例
  • 如何让单位网站做防护网站 被刷流量
  • 网站建设好卖吗88建网站
  • 漫画 网站 源码合肥小程序开发公司哪家好
  • 台州网络建站模板asp网站合法
  • wordpress怎么设置网站描述高端网页设计培训
  • 营销型网站策划建设深圳市住房保障署官网
  • 网站建设与管理初级教学贵阳做网站需要多少钱
  • 杭州最好的网站设计公司小游戏网页版入口
  • 大连网站建设方案咨询佛山网站设计师