Qt自定义控件

Qt自带的控件有时不能满足我们的需求,比如,我想在用Label显示图片,点击图片就会有动作,而Qt自带的Label没有clicked这个信号,所以我们来自定义一个myLabel控件。

一、首先在工程里新建文件,选择 C++Class,在弹出框写上类名,选择基类为QWidget,点击下一步、完成

Qt自定义控件_第1张图片
Qt自定义控件_第2张图片
Qt自定义控件_第3张图片

二、新建完后,工程里多了一个头文件和一个cpp文件,要把对应的基类从QWidget改成QLabel.

Qt自定义控件_第4张图片
Qt自定义控件_第5张图片
Qt自定义控件_第6张图片

三、到这一步就可以算是创建完成了,接下来要把一个普通的QLabel变成我们写的myLabel。

在 ui 里建一个Qlabel,然后右击,点击提升为,然后选择基类,填写提升类名,也就是新建的类名,我的myLabel。接着把全局打上勾勾,点添加,再点提升。如下图
Qt自定义控件_第7张图片
Qt自定义控件_第8张图片
Qt自定义控件_第9张图片

四、做完上面的步骤,被提升的label已经是myLabel类了,我们现在只需要把我们想实现的内容写到myLabel类里就行了。

要实现点击label有反应,重写个虚函数:鼠标点击事件 就可以了。
这里只简单实现按下label会打印一个字符串功能。
在这里插入图片描述
Qt自定义控件_第10张图片

你可能感兴趣的:(Qt)