第2部份:添加一个菜单栏和状态栏
来源:互联网 发布:玄幻小说 知乎 编辑:程序博客网 时间:2024/05/13 04:42
原文网址:http://www.dazzle.plus.com/linux/QtCreator/part02.htm
第2部份:添加一个菜单栏和状态栏
添加一个菜单栏和状态栏
现在我们已经开始QtCreator项目,我们开始给应用程序添加新的功能。第一个我们要实现的功能就是添加一个菜单栏和状态栏。类QMainWindow提供了许多有用的特性,使这项任务变得很容易。
虽然QtCreator创建的模板代码是一个很好的开始,但是我们要用下面列出的代码去替换它,并且加上注释和新的功能。
main.cpp
首先替换QtCreator创建的main.cpp文件中和下面很相似的模板代码
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ // 创建一个句柄,用来处理主事件循环和解析命令行参数 QApplication app(argc, argv); // 创建一个应用程序主窗体和主事件循环的入口 MainWindow window; window.show(); return app.exec();}
main.cpp文件中包含的“main”函数是应用程序的入口点,当应用程序启动时,使用Qt类QApplication类和另一个类MainWindow创建一个基本的GUI窗体,这个窗体可以改变大小,移动和关闭。当这个窗体被关闭,应用程序也就结束。虽然希望注释能让你很好的理解这些不同的代码,但是让我们更详细的过一遍这些代码。
前两行是包含语句,一个是MainWindow类的头文件,另外一个是Qt QApplication类的。接着应用程序代码,我们有一个标准的C++程序入口main函数。
这里我们创建的QApplication对象,包含所有Qt GUI应用程序所需要的基本功能解析常见的命令行参数,并设置相应的内部状态。更多细节参见Qt文档。现在给我们的应用程序创建主窗体,让这个主窗体可见,最后把控制权交给这个QApplication对象,直到应用程序被关闭。
mainwindow.h
使用下面的代码替换QtCreator创建的maindow.h文件的模板代码。
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>/*************************************************************************************//*********************** QSimulate程序主窗体 ***********************//*************************************************************************************/class MainWindow : public QMainWindow{public: MainWindow(); // 构造函数};#endif // MAINWINDOW_H
文件开头的#ifndef #define和结尾的#endif,是标准的C++程序结构,避免重复引入头文件产生的错误。如果你没有这样使用过,不过这是一个很好开发习惯。
类MainWindow派生于QMainWindow继承了很好的Qt的功能。最开始我们的事情很简单,只有一个构造函数。
mainwindow.cpp
最后使用下面的代码替换QtCreator创建的mainwindow.h文件的模板代码。
/*************************************************************************************//***********************QSimilate程序主窗体 ***********************//*************************************************************************************//************************************ 构造函数 *************************************/MainWindow::MainWindow() : QMainWindow(){ // 添加下拉菜单(现在是空的) menuBar()->addMenu("&File"); menuBar()->addMenu("&Edit"); menuBar()->addMenu("&View"); menuBar()->addMenu("&Simulate"); menuBar()->addMenu("&Help"); // 添加消息状态栏 statusBar()->showMessage("QSimulate has started");}
在构造函数里,我们使用从QMainWindow继承过来的两个函数menuBar()和statusBar()添加菜单项到菜单栏和一个可以显示消息的状态栏。要成功地使用它们,需要把两个Qt类QMenuBar和QStatusBar包含进来。
现在创建好的五个下拉菜单(文件,编辑,视图,模拟,帮助)没有菜单项。我们将在后面添加。注意到将一个&符号在放菜单标题里是告诉Qt,下一个字符有下划线和自动创建一个菜单快捷键。和菜单栏一样,我们开始使用应用程序,状态栏将会被QMainWindow自动创建。
编译和运行
当我们尝试重新运行应用程序,QtCreator将会自动编译新代码
- 第2部份:添加一个菜单栏和状态栏
- 第3部份:添加一个显示区域
- 第7部份:添加一个撤销堆栈
- 第4部份:增强状态栏
- 菜单栏、工具栏和状态栏
- 添加菜单栏、工具栏按钮、状态栏,并将菜单栏和工具栏关联
- 给对话框添加菜单栏和状态栏,在状态栏显示菜单提示。并响应菜单更新命令
- virtualBox菜单栏和状态栏显示
- MFC框体添加菜单栏工具栏状态栏
- MFC框体添加菜单栏工具栏状态栏
- MFC框体添加菜单栏工具栏状态栏
- PyQt5学习记录(2)---QMainWindow菜单栏、状态栏和工具栏
- 第6部份:移动和删除项
- 第11部份:打印和打印预览
- 第12部份:新建和退出
- 为对话框添加一个菜单栏
- 如何使链接打开一个没有菜单栏、地址栏、工具条和状态栏的窗口
- 关于菜单栏和状态栏的使用
- How to Become an Exceptional DBA(如何成为一个优秀的DBA)
- 数据缓存技术及代码详解
- java集合类总结
- myeclipse遇见的常见问题解决方案
- C/C++定义全局变量/常量几种方法的区别
- 第2部份:添加一个菜单栏和状态栏
- sublime text 2菜单栏找不到了,该怎么办
- linq gridview
- 关于mysql Gaplock以及监控锁的相关示例
- DSP Flash烧写的步骤都有哪些
- IO模式设置网络编程常见问题总结—IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT(re
- C++虚函数表解析
- 通过压缩png图片的方式减少ipa包的尺寸
- Javascript学习