第2部份:添加一个菜单栏和状态栏

原文网址: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类QMenuBarQStatusBar包含进来。

现在创建好的五个下拉菜单(文件,编辑,视图,模拟,帮助)没有菜单项。我们将在后面添加。注意到将一个&符号在放菜单标题里是告诉Qt,下一个字符有下划线和自动创建一个菜单快捷键。和菜单栏一样,我们开始使用应用程序,状态栏将会被QMainWindow自动创建。

编译和运行

当我们尝试重新运行应用程序,QtCreator将会自动编译新代码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值