Qt小部件基础教程(三):记事本头文件项目代码
Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。
记事本头文件
该向导为Notepad类生成了一个头文件,该头文件具有必要的#include,构造函数,析构函数和Ui对象。该文件如下所示:
#includenamespace Ui { class Notepad; } class Notepad : public QMainWindow { Q_OBJECT public: explicit Notepad(QWidget *parent = nullptr); ~Notepad(); private slots: void newDocument(); void open(); void save(); void saveAs(); void print(); void exit(); void copy(); void cut(); void paste(); void undo(); void redo(); void selectFont(); void setFontBold(bool bold); void setFontUnderline(bool underline); void setFontItalic(bool italic); void about(); private: Ui::Notepad *ui; QString currentFile; };
以下行包括QMainWindow,它提供一个主应用程序窗口:
#include < QMainWindow >
以下各行在Ui名称空间中声明Notepad类,该名称空间是该uic工具从.ui文件生成的UI类的标准名称空间:
namespace Ui { class Notepad; }
类声明包含Q_OBJECT宏。它必须在类定义中排在首位,并将我们的类声明为QObject。自然,它还必须继承自QObject。一个QObject中增加了一些能力,以一个普通的C ++类。值得注意的是,类名称和插槽名称可以在运行时查询。也可以查询插槽的参数类型并调用它。
class Notepad : public QMainWindow { Q_OBJECT
以下几行声明了一个构造函数,该构造函数的默认参数为parent。值0表示该窗口小部件没有父级(它是顶级窗口小部件)。
public: explicit Notepad(QWidget *parent = nullptr);
以下行声明了一个虚拟析构函数,以释放对象在其生命周期中获取的资源。根据C ++命名约定,析构函数与其关联的类具有相同的名称,并以波浪号(?)为前缀。在QObject中,析构函数是虚拟的,以确保当通过指向基类的指针删除对象时,派生类的析构函数被正确调用。
~Notepad();
以下各行声明一个成员变量,该变量是指向记事本UI类的指针。成员变量与特定的类相关联,并且可用于其所有方法。
private: Ui::Notepad *ui; QString currentFile;