首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2012-12-17 
关于QLabel的一些问题向高手求助~1.自己定义了一个类dragLabel。2.dragLabel继承QLabel。3.当new一个dragLab

关于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应该就可以了。
[其他解释]

引用:
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,还望不见笑并多多指教啊~~

热点排行