关于QLabel的一些有关问题向高手

关于QLabel的一些问题向高手求助~
1.自己定义了一个类dragLabel。
2.dragLabel继承QLabel。
3.当new一个dragLabel的时候,会有一个按钮一样的label显示在窗口上。

我想实现这样的一个功能:
1.当鼠标点击这个label的时候,这个label的颜色会发生改变。

请求高手给指出一条思路,或者具体的实现方法~

------最佳解决方案--------------------
QLabel 没有点击事件,所以如果想直接用QLabel 无法实现,不过你可以把这个Label放在一个widget中,在widget的mousePressEvent事件中判断label所在的Qrect是否被点击,如果true,就改变颜色就可以了。可以用setStyleSheet或者切一张png的图setPixmap
------其他解决方案--------------------
QLabel继承的事件中有
virtual void mousePressEvent ( QMouseEvent * ev )
你试着用dragLabel继承QLabel
然后在dragLabel中实现那个事件看看。

对于鼠标点击事件的响应。
当鼠标点击这个label的时候,这个label的颜色会发生改变来试着改变颜色。
你可以再实现dragLabel的paintEvent函数,
virtual void paintEvent ( QPaintEvent * )
在绘图代码里设置QLabel的颜色。比如用QPainter来fillRect或者setBackgroud
------其他解决方案--------------------
楼上正解,
若是要是点击label外的地方,还需做个标记啥的
------其他解决方案--------------------
#3的方法好
------其他解决方案--------------------
三楼的方法正解,我已经实现过,不过功能不一样,我是让label上的字体颜色改变。呵呵
------其他解决方案--------------------
#3的方法是设置label的背景色了。你改成setFont应该就可以了。
------其他解决方案--------------------
引用:
QLabel 没有点击事件,所以如果想直接用QLabel 无法实现,不过你可以把这个Label放在一个widget中,在widget的mousePressEvent事件中判断label所在的Qrect是否被点击,如果true,就改变颜色就可以了。可以用setStyleSheet或者切一张png的图setPixmap



这个想法很坏。。。。。。
虽然这么做能达到楼主想要的效果,但是已经完全背离了面向对象的思维。


------其他解决方案--------------------
引用:
QLabel 没有点击事件,所以如果想直接用QLabel 无法实现,不过你可以把这个Label放在一个widget中,在widget的mousePressEvent事件中判断label所在的Qrect是否被点击,如果true,就改变颜色就可以了。可以用setStyleSheet或者切一张png的图setPixmap

Label怎么放在widget中啊?求代码?我是建立Qt Gui 应用,基类是QWidget,main.cpp怎么写才能让label放在widget中?大二电信学生初学Qt,还望不见笑并多多指教啊~~