始:在接触qt界面开发时,需要重新按钮的mousePressEvent事件,且用到的每个qt控件都用到相同的实现,为了避免对每个控件都重写一遍,想到了用类模板来实现。
类模板继承用法:参考
http://c.biancheng.net/view/320.html
http://c.biancheng.net/view/324.html
过程:类模板的基础用法原理是将n个不同类型通过变量来实现class或类型的统一管理。为了实现初衷,那么只要创建一个类模板A并继承需要的qt控件类,在A中实现mousePressEvent事件即可
模板代码:
template <class T>
class A :public T
{
public:
A() {};
void mousePressEvent(QMouseEvent *e)
{
QWidget::mousePressEvent(e);
qDebug("类模板鼠标事件")
}
};
应用模板类代码:
auto btn = new A<QLabel>;
btn->setParent(this);
btn->setObjectName("test");
btn->setText("test");
btn->move(x, y);
btn->resize(w, h);
btn->show();
结:类模板不仅可以实现类的管理,还能够用于类重载,能够应用与于重写类似qt事件的类