第三章 创建主窗口
这一章讲解如何使用Qt创建主窗口。在本章的最后部分,你将能够创建一个应用程序的完整用户界面,包括菜单、工具栏、状态栏以及应用程序所需的足够多的对话框。而在第四章则会实现程序的相关功能。Spreadsheet电子制表软件类似于我们常用的Excel。
首先打开Qt Creator新建一个项目Application->Qt Widgets Application->起名为“q02_Spreadsheet”->类名为“MainWindow”。
3.1 子类化QMainWindow
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QAction;
class QLabel;
class FindDialog;
class Spreadsheet;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
//MainWindow类定义为QMainWindow类的子类。
//由于类MainWindow提供了自己的信号和槽,所以它包含了Q_OBJECT宏
Q_OBJECT
public:
MainWindow();
~MainWindow();
protected:
void closeEvent(QCloseEvent *event);
//closeEvent()函数是QWidget类中的一个虚函数,当用户关闭窗口时,这个函数会被自动调用。
//类MainWindow中重新实现了它,这样就可以向用户询问一个标准问题“Do you want to save yourchanges?" ,并且可以把用户的一些偏好设置保存到磁盘中。
private slots:
void newFile();
void open();
bool save();
bool saveAs();
void find();
void goToCell();
void sort();
void about();
/*
* 像File->New和Help->About这样的菜单项,在MainWindow中会被实现为私有槽。
* 除了save()槽和saveAs( )槽返回一
* 个bool值以外,绝大多数的槽都把void作为它们的返回值。
* 当槽作为一个信号的响应函数而被执行时,就会忽略这个返回值;
* 但是当把槽作为函数来调用时,其返回值对我们的作用就和调用任何一个普通的C++函数时的作用是相同的。
*/
void