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

qt QLabel半透明之后 背景刷新有关问题

2012-01-22 
qt QLabel半透明之后 背景刷新问题img_no 3对话框上有个半透明QLabel。文字每隔一段时间改变一次。C/C++

qt QLabel半透明之后 背景刷新问题
img_no = 3;

对话框上有个半透明QLabel。

文字每隔一段时间改变一次。

C/C++ code
void ExImage::change_label_text(){    switch(img_no%3)    {    case 0:       label->setText(img_info[0].imgName);        break;    case 1:        label->setText(img_info[1].imgName);        break;    case 2:        label->setText(img_info[2].imgName);        break;    }}
同时重画一次对话框背景。
C/C++ code
void ExImage::paintEvent(QPaintEvent*){    switch(img_no%3)    {    case 0:        str_img = img_info[0].imgPath;        break;    case 1:        str_img = img_info[1].imgPath;        break;    case 2:        str_img = img_info[2].imgPath;               break;    }    img_no++;    QPainter  painter(this);    QImage img(str_img);    img = img.scaled(400,300);    painter.drawImage(0,0,img);}


一开始显示正常,如果改变对话框大小,也会调用paintEvent。
此时,半透明的QLabel的背景和对话框的背景就会不一样。
请问这是为什么???如何修改???

[解决办法]
你这个每隔一段时间是多久啊?为什么change_label_text()不放在paintEvent函数里执行?
[解决办法]
这个问题主要是你在void ExImage::paintEvent(QPaintEvent*)里面将 img_no标示,进行了 img_no++操作导致的,很简单的逻辑错误。你需要将img_no++操作放到你定时器触发的地方进行处理就可以了。

热点排行