专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

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

发布时间:2010-05-30 21:33:03 文章来源:www.iduyao.cn 采编人员:星星草
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++操作放到你定时器触发的地方进行处理就可以了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: