Qt更新qlabels背景色
我有一个二叉树实现,我正在绘制QLabel,上面的数字表示树的节点。我想做的是,当我遍历树时,我想在每个节点上更改它们的背景色。但我的工作失败了:/这是我的代码。请告诉我该怎么办Qt更新qlabels背景色,qt,background-color,qlabel,Qt,Background Color,Qlabel,我有一个二叉树实现,我正在绘制QLabel,上面的数字表示树的节点。我想做的是,当我遍历树时,我想在每个节点上更改它们的背景色。但我的工作失败了:/这是我的代码。请告诉我该怎么办 void Node::ChangeColor() { QPalette pal; pal.setColor( lbl->backgroundRole(), QColor(255,0,0) ); // change the color lbl->setPalette(pal);
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();
}
我也使用了样式表方法,但我也无法使其工作:/
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();
}
通过将更新更改为重新绘制标签的方法,我解决了这个问题