关于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 voidmousePressEvent ( QMouseEvent * ev )
你试着用dragLabel继承QLabel
然后在dragLabel中实现那个事件看看。
对于鼠标点击事件的响应。
当鼠标点击这个label的时候,这个label的颜色会发生改变来试着改变颜色。
你可以再实现dragLabel的paintEvent函数,
virtual voidpaintEvent ( QPaintEvent * )
在绘图代码里设置QLabel的颜色。比如用QPainter来fillRect或者setBackgroud
[其他解释]
楼上正解,
若是要是点击label外的地方,还需做个标记啥的
[其他解释]
#3的方法好
[其他解释]
三楼的方法正解,我已经实现过,不过功能不一样,我是让label上的字体颜色改变。呵呵
[其他解释]
#3的方法是设置label的背景色了。你改成setFont应该就可以了。
[其他解释]