0

我有一个二叉树实现,我正在绘制 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();
}

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

4

1 回答 1

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

通过更改更新以重绘标签方法,我解决了这个问题。

于 2013-05-27T14:45:48.303 回答