前面大概介绍了QT的机制和控件的使用,现在开始写一个记事本,可以打开和保存文本文件。
头文件notepad.h
头文件一般用来定义用户自己写或者继承的类,定义构造函数和其他实现功能逻辑的成员函数,还有一些私有成员变量。
其中open(),save(),quit()是用来接受信号后处理的槽函数,具体的实现在notepad.cpp中。
源文件notepad.cpp
notepad.cpp中主要实现在notepad.h中定义的成员函数。Notepad()是构造函数,建立一个对象时会自动调用。open()函数打开文本文件,save()保存文本文件,quit()退出界面。
QAction是QObject的一个子类,构造函数是QAction(const QString &text, QObject* parent)
,用来建立Menu下的三个下拉菜单。
fileMenu=menuBar()->addMenu("File")
这一句话比较难理解,可以换作fileMenu=this->menuBar()->addMenu("File")
看。menuBar()在qmianwindow.h中定义为QMenuBar *menuBar() const
。
menuBar()是一个指向QMenuBar的指针,就是调用Notepad继承自QMainWindow的成员函数,将File目录添加到menuBar中赋值给fileMenu对象。
getOpenFileName和critical都是静态方法。用来获取打开的文件名和输出错误提示。多注意一下静态方法和静态变量的使用,参见C++ Primer Page 268~272。
Main函数
修改Main函数如下:
运行结果如图
Reference
[1].http://qt-project.org/doc/qt-4.8/gettingstartedqt.html
[2].http://see.xidian.edu.cn/cpp/biancheng/view/210.html
[3].C++ Primer. Page268~272