第六章 借书与还书(一)
https://gitee.com/mayonaka/LibraryManageSystem
百度云:https://pan.baidu.com/s/1G95yPyGG080b6yXcjc8B0g
提取码:4q8b
到目前为止,我们已经可以显示用户借阅的书,显示书的详细信息。但是图书管理最重要的两个功能还没有做,那就是借书和还书。
在做这两个界面之前,我们先看一下实现后的界面,大家看一下能不能发现什么问题。
在上面的四个界面,我们发现,这四个界面都是有相同的控件构成的:一个Tree Widget,两个Push Button。C++代码非常注重代码的重用性,为这四个四个相似的界面,编写四个几乎相同的代码,程序就会显得非常笨重。因此,我们把这四个界面的相似的东西抽线出来,做一个基类,而借书,还书等界面继承此类,这样就不用重复编码了。
下面开始编码:
1. 新建一个Qt设计师界面类,界面模板选择Widget,类名就用Form。
2. 设计界面,界面共有一个Tree Widget,两个Push Button:
1. Tree Widget的变量名不用修改。
2. Push Button:显示文字:“确定”,变量名:confirmPushButton。
3. Push Button:显示文字:“取消“,变量名:cancelPushButton。
#include <QWidget>
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = 0);
~Form();
private:
Ui::Form *ui;
};
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
// 当用户按下取消按钮时,界面关闭
QObject::connect(ui->cancelPushButton, SIGNAL(clicked(bool)),
this, SLOT(close()));
}
Form::~Form()
{
delete ui;
}
这个基类只是负责提供界面,没有什么要实现的逻辑。
确定按钮的功能要在子类里实现,取消按钮的功能都一样,在基类实现即可。