Qt5教程: (6) 菜单栏、工具栏、状态栏及核心控件
1. 新建QMainWindow工程
取消生成.ui文件
2. 菜单栏
在mainwindow.cpp中添加头文件 和
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
新建菜单栏
// 新建菜单栏
QMenuBar *menuBr = menuBar();
setMenuBar(menuBr);
给菜单栏添加菜单
// 添加菜单
QMenu *pFile = menuBr->addMenu("File");
给菜单添加菜单项
// 添加菜单项
QAction *pNew = pFile->addAction("new file");
QAction *pOpen = pFile->addAction("open file");
给菜单项绑定动作
connect(pNew, &QAction::triggered,
[] ()
{
qDebug() << "Create new file";
}
);
connect(pOpen, &QAction::triggered,
[] ()
{
qDebug() << "Open file";
}
);
保存后运行, 点击"File"菜单下的"new file"和"open file", 会有对应的log输出: [动图卡住,就右键查看图片]
添加分割线
在添加new file
和open file
两个菜单项代码的中间, 添加一条分割线:
pFile->addSeparator(); // 添加分割线
添加后, 分割线长这样:
3. 工具栏
添加头文件
添加工具栏
QToolBar *toolBar = addToolBar("ToolBar");
这个时候工具栏什么都没有, 我们需要往里面加东西:
给工具栏添加快捷键
toolBar->addAction(pNew);
这样, 新建文件的快捷键就被添加到工具栏了:
点击快捷键, 会有对应的log输出. 但是我们见到的工具栏里的快捷键都是小图标, 没有这么丑的, 用文字的, 比如WPS的工具栏:
但是我们这里先不讲怎么添加图标, 暂时先用Button代替一下
Qt5教程: (6) 菜单栏、工具栏、状态栏及核心控件的更多相关文章
- QT+ 状态栏+核心控件+浮动窗口
#include "mainwindow.h" #include <QStatusBar> #include <QLabel> #include<QT ...
- Qt5 UI信号、槽自动连接的控件重名
Qt5 UI信号.槽自动连接的控件重名 来源 http://blog.csdn.net/goldenhawking/article/details/51865909 对Qt5稍有熟悉的童鞋都知道信号. ...
- 如何在BCGControlBar工程的工具栏里面新增下拉列表控件
通常情况下,工具栏里面都是一些按钮和图片,很少可以看到下拉列表控件,但是在某些应用场合,也需要用到下拉列表控件.今天在这里就简单讲解下如何在工具栏里添加下拉列表控件. 添加的过程也比较简单,在CM ...
- WPF教程十一:简单了解并使用控件模板
WPF教程十一:简单了解并使用控件模板 这一章梳理控件模板,每个WPF控件都设计成无外观的,但是行为设计上是不允许改变的,比如使用Button的控件时,按钮提供了能被点击的内容,那么自由的改变控件外观 ...
- Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
分类: Android高手进阶 Android基础教程 2012-09-14 18:10 29759人阅读 评论(35) 收藏 举报 android相册layoutobjectclassloade ...
- Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)
对Qt5稍有熟悉的童鞋都知道信号.槽的自动连接机制.该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联.该机制的详细文章见 http: ...
- PyQt4 菜单栏 + 工具栏 + 状态栏 + 中心部件 生成一个文本编辑部件示例
我们将创建一个菜单栏.一个工具栏.一个状态栏和一个中心部件. #!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import ...
- C#Windows窗体界面设计_05_添加菜单栏 工具栏 状态栏 按钮
- 【原创】Silverlight DataGrid对核心控件DataGrid的任意单元格进行获取和设置分析。
前几天,公司同事有个需求需要对系统中的DataGrid控件的指定单元格(如图,申请人ID)进行禁用设置,尝试了很多次总是 整行整列的 禁用 没实现效果. 网上资料较少,没找到解决措施. 尽管silve ...
随机推荐
- (2)RapidJson的详解及使用
本节主要介绍RapidJson是如何使用的. (1)RapidJson是什么 RapidJson是一个跨平台的c++的json的解析器和生成器: 相比较jsoncpp库,RapidJson ...
- WPF 自定义UI控件学习
最近项目中运用到了WPF处理三维软件,在C/S结构中WPF做UI还是有很多优越性,简单的学了一点WPF知识,成功的完成项目目标.项目过度阶段对于WPF的一些基本特点有了进一步了解 .至此花费一点时间研 ...
- hive学习笔记之-数据类型
数据类型 Hive基本的数据类型: Hive集合数据类型: 另外还有一个复合数据类型,可以综合上面的数据类型组合到一起. · union: UNIONTYPE<data_typ ...
- graphics.drawRect()方法
drawRect方法的官方API文档描述 drawRect public void drawRect(int x, int y, int width, int height) Draws the ou ...
- 控制执行流程之ForEach语法
1.定义 : 一种更加简洁的for语法,用于数组和容器===>>>foreach,无需创建int类型变量对被访问项构建的序列进行计数. 2.经典应用: 对于数组的初始化,如果选用f ...
- Android的有序广播和无序广播(解决安卓8.0版本之后有序广播的接收问题)
前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制. *** 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如 ...
- 快速开始使用spark
1.版本说明 在spark2.0版本以前,spakr编程接口是RDD(Resilient Distributed Dataset,弹性分布式数据集),spark2.0版本即以上,RDD被Dataset ...
- 记一次 JavaScript 浮点型数字误差引发的问题
需求 车间的工人在生产出来产品后,需要完成初步的自检,并通过手机上报.在实际生产中,用户(工人)不方便进行数值的输入,因而表单中的一些项设计成 picker 模式以供选取数值.数值的取值范围,根据允许 ...
- chsime.exe cpu占用高
打开管理员的命令提示符,运行 if exist "%SystemRoot%\System32\InputMethod\CHS\ChsIME.exe" (takeown /f &qu ...
- quartz-scheduler定时器实现
第一步,在pom.xml中引入quartz-scheduler. <dependency> <groupId>org.quartz-scheduler</groupId& ...