理解
项目中需要通过设置来更新界面,这个过程中若是窗口没有发生变化,即使通过调用update()函数来触发重绘函数重绘窗口,也不能立即显示被重绘的窗口。只有窗口变化的时候才会被显示出来。
示例说明
双击选中窗口,希望窗口的边框变为黄色。如果直接设置窗口边框颜色,然后调用update()函数,并不能直接显示更新后的结果,需要在窗口变化后才会显示设置的边框色。
void largeScreenListWidget::mouseDoubleClickEvent(QMouseEvent *event)
{m_isSelected = true;QColor color(255,255,0,255);setBigScreenBorderColor(color);QWidget::mouseDoubleClickEvent(event);
}void largeScreenListWidget::setBigScreenBorderColor(QColor &color)
{m_colorBackBorder = color;update();
}
这样并不会立即显示窗口边框为黄色。因为窗口没有变化。
void largeScreenListWidget::mouseDoubleClickEvent(QMouseEvent *event)
{m_isSelected = true;move(geometry().x()-1,geometry().y()-1);QColor color(255,255,0,255);setBigScreenBorderColor(color);QWidget::mouseDoubleClickEvent(event);
}
这样将窗口移动一丁点,窗口被设置的边框色就会显示出来。