停靠时不应用 QDockWidget::background-color

Ste*_*mer 5 c++ qt

我有一个QDockWidget

在此处输入图片说明

我想通过设置标题栏的背景颜色来提醒用户注意某些事件。

我通过为我的 设置样式表来实现这一点DockWidget

void DockWidget::setCriticalAlert()
{
    setStyleSheet("QDockWidget { background-color:red; }");
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此处输入图片说明

问题是background-colorQDockWidget停靠时没有应用:

在此处输入图片说明

如何在QDockWidget停靠时应用背景颜色?

Ste*_*mer 4

这是 Qt 中的一个错误。

问题 10537

引用链接问题:

问题是在QDockWidget::paintEvent中,在绘制PE_FrameDockWidget之前有一个isFloating()条件。我们不能只是删除这个条件,因为它会破坏其他样式(当停靠小部件停靠时不希望绘制框架)我们不能使用 PE_Widget 来绘制框架,因为它会覆盖停靠小部件的标题解决方案可能是引入一个新的 PE_FrameDockWidgetDocked 原始元素。或者一些 SH_DockWidget_DrawDockedFrame 样式提示来在每种情况下绘制框架。