为了给控件添加自定义的方法以及重绘控件,我们需要自定义控件来达到自己希望的结果,网上的自定义控件文章比较少,并且过程比较粗略。
此教程以中文版的QT Creator进行介绍
首先我们创建一个新的项目,名字任意,如果是在已有项目中添加自定义控件,可以忽略此步骤
项目选择QT GUI项目,基类选择widget


创建完项目后我们来创建自定义的控件,在项目名字上面点击鼠标右键,选择添加新文件


然后选择c++ class 文件


在类的创建界面,我们填写要创建的控件的基类,这里我们创建一个自定义的QLabel控件,类型信息选择继承自QWidget,类名可以自定义,填写完毕后我们选择完成就好了


在项目目录中,我们打开界面文件,向界面中拖入一个Label控件。


在右上方的界面,我们在控件名字上单击鼠标右键,然后选择“提升为...”


在打开的界面中填写我们刚刚新建的类名MyLabel,选择添加。


然后我们选中添加的项,单击提升,控件就变成了我们自定义的控件,拥有我们自定义的方法,当然了,这些方法需要我们在类中进行人工添加。


到此,自定义的控件就创建完毕了,我们可以在MyLabel.cpp以及.h中添加控件的槽与信号以及各种方法

