上一篇文章介绍Qt中的一个基本事件QMouseEvent,此文介绍如何基于现有控件类来设计自己的控件并将其提升到界面中的控件之上。
自定义控件类
上一篇文章中使用鼠标事件来捕获界面鼠标输入信息,但是当将鼠标放到表格窗体上进行点击时并没有任何反应。那是因为表格窗体是一个独立的窗体对象,每个窗体对象都有自己的鼠标事件,因此如果要在表格窗体上操作鼠标,需要对表格窗体进行单独的事件函数定义。这样做的方法是基于原来的QTableWidget自定义用户窗体类。
在Qt项目中新建一个C++ Class,输入一个自定义的用户类名称,如CustomTableWidget,基类输入需要继承的窗体类名称QTableWidget。
这样会在项目之中添加一个h文件和一个cpp文件。
注意:由于继承的基类是QTableWidget,Qt不会自动将其头文件包含进来,需要手动包含QTableWidget,否则编译会报类名未定义的错误。
下一步可以对自定义的表格窗体类进行开发,添加一些额外的属性和方法等。 此处添加一个鼠标事件函数。
和主界面开发方式一样,在头文件定义一个重载方法mousePressEvent: