Qt更新qlabels背景颜色

时间:2013-05-27 14:17:21

标签: qt background-color qlabel

我有一个二叉树实现,我正在绘制qlabels,其上的数字代表树的节点。我想要做的是当我遍历树时,我想改变每个节点的背景颜色。但我在这份工作上失败了:/这是我的代码。请告诉我该做什么的线索。

void Node::ChangeColor()
{ 
    QPalette pal;
    pal.setColor( lbl->backgroundRole(), QColor(255,0,0) ); // change the color
    lbl->setPalette(pal);
    lbl->setAutoFillBackground(true);
    lbl->update();
    QThread::sleep(1);
    pal.setColor( lbl->backgroundRole(), QColor(255,255,0) ); // change it back 
    lbl->setPalette(pal);
    lbl->setAutoFillBackground(true);
    lbl->update();
}

我也使用了样式表方法,但我无法使其工作:/

1 个答案:

答案 0 :(得分:0)

void Node::ChangeColor()
{ 
    QPalette pal;
    pal.setColor( lbl->backgroundRole(), QColor(255,0,0) ); // change the color
    lbl->setPalette(pal);
    lbl->setAutoFillBackground(true);
    lbl->repaint();
    QThread::sleep(1);
    pal.setColor( lbl->backgroundRole(), QColor(255,255,0) ); // change it back 
    lbl->setPalette(pal);
    lbl->setAutoFillBackground(true);
    lbl->repaint();
}

通过更改重新绘制标签方法的更新,我解决了问题。