MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);/** QAction是Qt中用于添加动作的类,* 可以将它添加在菜单,作为一个菜单项,也可以添加到工具栏,作为一个工具栏按钮* 其中参数一是设置该操作按钮的图标,":/images/icon"是资源文件的路径* 参数二中"&"号代表设置快捷键为"Alt+o"*/QAction *open = new QAction(QIcon(":/images/icon"),"Open(&O)",this);/*** 设置快捷键为"Ctrl+o"* 这里使用QKeySequence类是为了可以跨平台,例如pc和mac下的键盘不一样,Qt可以根据平台不同设置相应的快捷键* 该类中为我们定义了很多内置的快捷键,可以直接使用,例如下面注释的一行。* 也可以自己创建一个QKeySequence类,传入我们想要设置的快捷键。*///open->setShortcut(QKeySequence(QKeySequence::Open));open->setShortcut(QKeySequence("Ctrl+O"));//设置工具提示open->setToolTip("open file");//状态栏提示open->setStatusTip("open existing file");//在菜单栏中添加一个菜单。因为Qt界面工程,默认自带了菜单栏、工具栏和状态栏,所以我们可以直接使用ui->menuBar来调用QMenu *file = ui->menuBar->addMenu("File(&F)");//将open动作作为一个菜单项添加到file菜单中file->addAction(open);//添加到工具栏ui->mainToolBar->addAction(open);//创建状态栏,Qt界面工程已经创建//statusBar();
}

状态栏可以显示临时信息、永久信息和其他组件,例如:

statusBar()->showMessage("欢迎!");

运行结果如下:

还可以设定显示时间,毫秒为单位,例如:

    statusBar()->showMessage("欢迎!",2000);

这样信息会在2秒后消失。

下面在状态栏中显示一些组件,声明一个私有变量

namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QLabel *statusLabel;
};

然后在构造函数中添加,如下代码

    statusLabel = new QLabel(this);statusLabel->setFrameShape(QFrame::WinPanel);statusLabel->setFrameShadow(QFrame::Sunken);ui->statusBar->addWidget(statusLabel);statusLabel->setText("欢迎!!!");

运行如下:

这样就可以在需要显示信息的时候,调用statusLabel->setText()来设置了。

状态栏显示永久信息需要使用addPermanentWdget函数来添加一个可以显示信息的组建,它会显示在状态栏的右侧,不会被临时信息所遮盖。

    QLabel *permanent = new QLabel;permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);permanent->setText(tr("<a href=\"http://www.baidu.com\">baidu.com</a>"));permanent->setTextFormat(Qt::RichText);     //设置为超文本permanent->setOpenExternalLinks(true);      //开启自动打开超链接ui->statusBar->addPermanentWidget(permanent);

运行结果如下:

在Qt中,mainwindow类提供了menuBar()函数来返回一个菜单栏(QMenuBar),如果没有菜单栏则会新建一个;提供了addToolBar()函数来新加一个工具栏(QToolBar);以及返回状态栏(QStatusBar)的statusBar()函数。上面的代码没有使用这三个函数,是因为Qt界面工程默认已经创建好了。这三个函数仅在mainwindow类中存在,QDialog和QWidget等其他类中都没有提供这三个函数。那么如果我们需要在QDialog或者QWidget类中使用菜单栏、工具栏和状态栏时怎么办?QMenuBar,QToolBar,QStatusBar都继承自QWidget,所以我们可以像使用其他QWidget子类那样进行操作。例如:

    QMenuBar *menuBar = new QMenuBar(this);QMenu *menu = menuBar->addMenu("&File");QAction *open = new QAction("&Open1",this);open->setStatusTip("open exsiting file");menu->addAction(open);

转载于:https://www.cnblogs.com/wangcb/p/6665822.html

Qt学习三 - 菜单栏、工具栏、状态栏相关推荐

  1. Qt菜单栏-工具栏-状态栏

    1.创建动作 QAction是Qt中用于添加动作的类,可以将它添加在菜单,作为一个菜单项,也可以添加到工具栏,作为一个工具栏按钮. 其中参数一是设置该操作按钮的图标,":/images/ic ...

  2. Qt学习(三):事件、定时器、事件过滤器

    知识点 mybutton.cpp 判断是否左键 mylabel.cpp 判断是左键 中键还是右键按下.进入离开窗口区域的显示 mywidget.cpp 定时器 事件过滤器 关闭提醒事件,关闭的时候提示 ...

  3. Qt 学习(三) —— Qt 模块

    1. Qt 模块简介 Qt由许多模块组成,分别支持不同领域的功能,主要分为 Essentials 和 Add-On. Qt Essential 是基本模块,它们可以在所有受支持的开发平台和经过测试的目 ...

  4. QT添加菜单栏-工具栏-中心区域-状态栏-dock 示范

    QT添加菜单栏-工具栏-中心区域-状态栏-dock 示范 QT添加菜单栏-工具栏-中心区域-状态栏-dock示范.rar-QT文档类资源-CSDN下载QT添加菜单栏-工具栏-中心区域-状态栏-dock ...

  5. QT学习笔记之QMainWindow

    QT学习笔记之QMainWindow 菜单栏 工具栏 状态栏 中心窗口部件 铆接部件(浮动窗口) 菜单栏 菜单栏最多只有一个 //菜单栏创建QMenuBar* bar = menuBar();//将菜 ...

  6. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  7. QT中三种构建菜单栏的方法

    QT中三种构建菜单栏的方法 方法1 <C++ GUI programming with Qt 4, Second Edition>给出的一种方法:QMenum定义单个菜单,调用menuBa ...

  8. QT学习篇(三):QT音频采集QAudioInput

    对于音频采集有很多的方式,在windows下存在API可以使用,例如wave:但是QT中有一个强大的音频处理的库,可以实现音频采集,设置采集的参数等.       这里便来记录下对这个库的使用---- ...

  9. [记录]QT学习之路2学习第三天

    今天的内容对应的是<<QT学习之路2>>第13到17部分. 主要内容由思维导图总结 一,什么是QT对话框 二,什么是QT标准对话框 三,怎么样实现QT对话框数据传递 四,深入了 ...

最新文章

  1. python 整合excel_Python将多个excel文件合并为一个文件
  2. os模块:与操作系统交互的一个接口
  3. 哦豁?这个程序员…… 有、东西!
  4. Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解
  5. 关于配置两台无线路由器
  6. android studio后端写在哪里_c++写的在终端上的2048游戏
  7. RK3399 Mali-T860占用率
  8. Hive from_unixtime函数入门
  9. python导入自己写的py_10万行代码10万年薪,利用python查看自己写了多少代码!
  10. 来自IT公司速查手册的各大IT公司薪资和待遇内幕
  11. 小打卡软件测试,考勤打卡软件大测评,这款打卡软件你有在用吗?
  12. 中国互联网流行文化缔造者百度贴吧,如何拥抱新时代?
  13. AOSP ~ Logcat Chatty 行过期
  14. Cube实现天空盒子,看了你自己也能做
  15. 大数据Spark实战第一集 导学
  16. 软件测试的简历里面,项目介绍要怎么写好?【乐搏TestPro】
  17. HTTP Headers 入门
  18. bogomips 骁龙820_中兴这款骁龙820手机堪称经典,如今跌幅近千元
  19. 【3.Delphi常用组件】6.滚动条
  20. Java 项目 JSON 转 XML(By fastjson)

热门文章

  1. CentOS 6.X安装LAMP最高版本环境
  2. LoadRunner 常用C语言函数使用
  3. 如何关闭Windows7的UAC
  4. 在Windows上运行单节点的Cassandra
  5. WIN32控件使用大全
  6. order by居然不能直接在union子句中使用
  7. 数据挖掘笔试面试(10)
  8. #386. 【UNR #3】鸽子固定器
  9. freemaker模板引擎使用详解
  10. 关于更新系统后CocoaPods不能使用的问题