概述

菜单栏,工具栏,状态栏应用中经常见到,下图解释一目了然,实际开发中 两种方式来实现,一种是使用纯代码QMenuBar,QToolBar,QStatusBar来设计开发,另一种使用Qt Designer通过拖拽的形式来实现,减少了大量的代码,使用简单。

菜单栏

1.新建项目UI基类选择QMainWindow。

2.双击在这里输入,可修改一级菜单的名称。

3.动作编辑器里添加actionOpen,actionSave两个动作

4.鼠标左键拖拽action到文件下的二级菜单即可,同时打开和保存之间可以添加分隔符

5.头文件中添加槽

private slots:
void OnOpenFile();
void OnSaveFile();

6.源文件实现槽函数

/************************************
@ Brief: 打开文件
@ Author: 红烧肉
@ Created: 2019/04/22
@ Return:
************************************/
void MenuDialog::OnOpenFile()
{
QMessageBox::information(this, "提示", "点击了打开Action", QMessageBox::Yes);
} /************************************
@ Brief: 保存文件
@ Author: 红烧肉
@ Created: 2019/04/22
@ Return:
************************************/
void MenuDialog::OnSaveFile()
{
QMessageBox::information(this, "提示", "点击保存Action!", QMessageBox::Yes)
}

7.构造函数里连接信号与槽

    connect(ui.actionOpen, &QAction::triggered, this, &MenuDialog::OnOpenFile);
connect(ui.actionSave, &QAction::triggered, this, &MenuDialog::OnSaveFile);

工具栏

菜单下方的区域就是用来存放工具栏。

添加工具栏更简单,直接拖拽acitonOpen,actionSave到该区域即可

常用方法:

void setMovable(bool movable):设置工具栏区域是否可移动

void setAllowedAreas(Qt::ToolBarAreas areas):设置工具栏可移动的范围

void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle):设置工具栏按钮的风格,如纯图标,文字,文字图标都有等

状态栏  

常用方法

void addWidget(QWidget *widget, int stretch = 0):状态栏左侧添加一个widget。对widget的拉伸系数为0。

void addPermanentWidget(QWidget *widget, int stretch = 0):状态栏右侧添加一个widget。

void setSizeGripEnabled(bool):设置右下角拖动缩放的控制点。

void showMessage(const QString &message, int timeout = 0):留言显示,过期时间为 timeout。

示例代码:

    statusBar()->addWidget(new QLabel("label1"));
statusBar()->addWidget(new QLabel("label2"));
statusBar()->addPermanentWidget(new QLabel("label3"));
statusBar()->addPermanentWidget(new QLabel("label4"));
statusBar()->showMessage("留言", 5000);
statusBar()->setSizeGripEnabled(false); //不显示右下角拖放控制点
statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}")); // QSS不显示label的边框

【Qt开发】菜单栏,工具栏和状态栏的更多相关文章

  1. Qt之菜单栏工具栏入门

    菜单栏基本操作 创建菜单栏 QMenuBar *menuBar = new QMenuBar(this); //1.创建菜单栏 menuBar->setGeometry(,,width(),); ...

  2. Qt 学习之路 :菜单栏、工具栏和状态栏

    在之前的<添加动作>一文中,我们已经了解了,Qt 将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类表示.QAction可以添加到菜单上.工具栏上.期间,我们还详细介绍了一 ...

  3. Qt 学习之路 2(12):菜单栏、工具栏和状态栏

    Home / Qt 学习之路 2 / Qt 学习之路 2(12):菜单栏.工具栏和状态栏 Qt 学习之路 2(12):菜单栏.工具栏和状态栏  豆子  2012年9月10日  Qt 学习之路 2  2 ...

  4. 三、PyQt5不同方法创建菜单栏、工具栏和状态栏

    创建菜单栏.工具栏和状态栏可以直接通过代码实现,也可以通过Qt Designer中的属性编辑器等实现.通过两种方法的学习可以加深理解,更好的掌握PyQt5. 一.菜单栏与状态栏 状态栏的设置比较简单, ...

  5. 如何在 VS Code 中搭建 Qt 开发环境

    前言 VS Code 高大上的界面.强大的智能联想和庞大的插件市场,着实让人对他爱不释手.虽然可以更改 Qt Creator 的主题,但是 Qt Creator 的代码体验实在差劲.下面就来看看如何在 ...

  6. win使用MSYS2安装Qt开发环境

    原文链接 MSYS2 下载地址: pacman的具体用法 有pacman的具体使用方法.我们首先对系统升级 我们首先对系统升级 pacman -Syu 就会检测整个系统可以升级的组件,并自动下载安装, ...

  7. Robot Framework--02 菜单栏&工具栏

    转自:http://blog.csdn.net/tulituqi/article/details/7584795 我把RIDE的界面大致分了四个区域:菜单栏.工具栏.案例及资源区.工作区,如下图 菜单 ...

  8. 细数Qt开发的各种坑(欢迎围观)

    1:Qt的版本多到你数都数不清,多到你开始怀疑人生.从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC.MSVC版本还必须安装对应的VS2 ...

  9. 用Qt开发第一个Hello World程序

    配置好Qt的环境变量之后,我们才可以进行下面的通过终端来使用Qt开发这个第一个程序 因为Qt的文件路径不能有中文否则会报错,所以一般都把工程文件都建立在根目录 我们创建的Qt程序包含两个部分:1.GU ...

随机推荐

  1. Spark-源码分析01-Luanch Driver

    1.SparkSubmit.scala 什么是Driver 呢?其实application运行的进程 就是driver,也是我们所写的代码就是Driver. object DefaultPartiti ...

  2. Python连接oracle数据库 例子一

    step1:下载cx_Oracle模块,cmd--pip install cx_Oracle step2: 1 import cx_Oracle #引用模块cx_Oracle 2 conn=cx_Or ...

  3. MySQL 分库分表 dble简单使用

    一.运行环境 Host Name IP DB Mod data0 172.16.100.170 mysql   data1 172.16.100.171 mysql   data2 172.16.10 ...

  4. learning scala repreated parameters

  5. amundsen 来自lyft 的开源数据发现平台

    amundsen 是来自lyft 开源的元数据管理.数据发现平台,功能点很全,有一个比较全的前端.后端以及 数据处理框架 参考架构图 说明 从官方介绍以及github代码仓库可以看出还是比较全的整体解 ...

  6. 洛谷 P3197 [HNOI2008]越狱 题解

    P3197 [HNOI2008]越狱 题目描述 监狱有连续编号为 \(1-N\) 的 \(N\) 个房间,每个房间关押一个犯人,有 \(M\) 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗 ...

  7. P4279 【[SHOI2008]小约翰的游戏】

    我怎么什么都不会啊\(QAQ\)博弈论怎么和期望一样玄学啊\(QAQ\) 我们分几种情况讨论: \(Case1\):只有一堆且为1,那么后手胜利 \(Case2\):每一堆都是1,那么只需要判断奇偶性 ...

  8. Java后台读取excel表格返回至Web前端

    如果是做连接数据库的话,系统难度就降低了不少:这次本人也算是体会到数据库的方便了吧(不过以后云储存好像会更受欢迎些):比如说查询列出所有数据吧:数据库每个表每一列都有列名,正常的做法是遍历数据库表,d ...

  9. SpringMVC自定义类型转换器

    SpringMVC 自定义类型转换器  我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据 ...

  10. nginx重启 平滑重启

    进入 ngiinx sbin目录下./nginx -c /usr/local/nginx/conf/nginx.conf -c参数指定了要加载的nginx配置文件路径 停止操作停止操作是通过向ngin ...