在pc软件页面开发中,使用最多的就是Dialog和Widget这两个基本窗体控件。这两个窗体控件分别有常用的函数。可以把这些常用函数放到一起形成一个基类。
-
在软件页面开发中,提升出一个基类的好处:
a. 避免函数和功能模块重复
B. 可以对一些常用函数进行命名约束,使特定函数名称保持统一
c. 使代码层次分明,简洁明了
d. 修改基类功能可以让继承自这基类的所有子类都得到同样的功能。 -
基类实现所需要的面向对象编程技术:
基类的实现是依靠面向对象编程语言的多态技术来实现的。
在C++中基类可以使用虚函数来写各个子类提取出来的共有函数。也可以使用纯虚函数来约束子函数需要实现的函数。 -
在qt开发中建议的几个基类
a. BaseDialog
basedialog.h
# ifndef BASEDIALOG_H
# define BASEDIALOG_H
# include <QDialog>
class BaseDialog : public QDialog
Q_OBJECT
public:
BaseDialog();
explicit BaseDialog(QWidget *parent = nullptr);
BaseDialog();
private:
void Init();
};
# endif // BASEDIALOG_H
basedialog.cpp
# include "basedialog.h"
# include <QIcon>
BaseDialogBaseDialog()
Init();
}
BaseDialogBaseDialog(QWidget *parent)
:QDialog(parent)
Init();
}
BaseDialogBaseDialog()
}
void BaseDialogInit()
//remove question mark
QtWindowFlags flags= this->windowFlags();
setWindowFlags(flags&QtWindowContextHelpButtonHint);
//set dialog icon
setWindowIcon(QIcon(":/img/image/app_icon.png"));
}
b. BaseWidget
basewidget.h
# ifndef BASEWIDGET_H
# define BASEWIDGET_H
# include <QWidget>
class BaseWidget : public QWidget
Q_OBJECT
public:
BaseWidget();
explicit BaseWidget(QWidget *parent = nullptr);
virtual BaseWidget();
public:
//suggested functions
virtual void UpdateUi();
virtual void TranslateUi();
protected:
//must have functions
virtual void SetupUi(QWidget *widget) = 0;
};
# endif // BASEWIDGET_H
basewidget.cpp
#include "basewidget.h"
BaseWidgetBaseWidget()
}
BaseWidgetBaseWidget(QWidget *parent)
:QWidget(parent)
}
BaseWidgetBaseWidget()
}
void BaseWidgetUpdateUi()
}
void BaseWidgetTranslateUi()
}