需求:一个label控件,能捕捉到鼠标的进入离开点击动作
:
如果要对一个控件进行 构造、析构、捕捉之类的操作的话,需要自定义控件,然后再捕捉它
-
自定义控件:对项目添加新文件, 上一节用的是Qt设计师界面,但是如果不需要用这个ui,只想要自定义一个控件,可以用C++的.h .cpp去做就可以了
自定义一个类名
完成之后可以看到mylabel的文件
-
在头文件中声明捕捉事件
-
在.cpp中定义
-
但现在封装的mylabel和ui中widget的label还没有关系,这时要将我们封装的mylabel和ui中控件绑定:
1 把类名myLabel复制,将ui中label提升为
注意提升的控件类要与自定义类基类一致,因此我们要去把自定义的mylabel.h和.cpp都改成继承自QLabel
然后对myLabel类进行提升,两边的类型必须匹配才能提升成功 , 添加之后右侧能看到:
这样就将自定义的label事件和ui中的label进行了绑定, 能捕获到鼠标的状态了
4. 给label加个属性,方便看到边界
结果 : 捕获成功
还有鼠标的点击 释放 移动事件等