2013-05-27 47 views
0

我有一个二叉树实现,并且我正在绘制具有代表树节点的数字的qlabels。我想要做的是当我遍历树时,当我想要改变每个节点的背景颜色时。但是我在这项工作上失败了:/这是我的代码。请给我一些线索。Qt更新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(); 
} 

我还使用了样式表的方法,但我不能让它工作,要么:通过改变更新重绘标签我解决了这个问题的方法/

回答

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(); 
}