第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将会自动编译新代码



原创粉丝点击