QDockWidget:背景颜色在停靠时未应用

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (598)

我有一个QDockWidget:

我希望通过设置背景色标题栏。

我通过为我的DockWidget:

void DockWidget::setCriticalAlert()
{
    setStyleSheet("QDockWidget { background-color:red; }");
}

其结果是:

问题是background-colorQDockWidget停靠:

控件时如何获得要应用的背景色?

提问于
用户回答回答于

这是QT中的一个bug。

第10537期

引用链接问题的话:

问题是,在QDockWidget:ache tEvent中,在绘制PE之前有一个isFloating()条件_FrameDockWidget我们不能删除此条件,因为它会破坏另一种样式(当dockwidget停靠时不能绘制框架),我们不能使用PE_小部件要绘制框架,当它遍历dockwidget的标题时,解决方案可能是引入一个新的PE_FrameDockWidgetDocked原语元素。或者一些SH_DockWidget_DrawDocFrame样式提示在每种情况下都绘制框架。

用户回答回答于

一种有效的解决方法似乎是设置父类的样式表,并使用类和id选择器。请原谅python格式化的代码,但概念是相同的-在本例中,‘DOCK’是一个QDockWidget,它使用setObjectName()获得了一个对象名,其父QMainWindow是‘Self’:

self.setStyleSheet("QDockWidget#"+str(dock.objectName())+"::title {background-color:red}")

在PyQt5.5中,这在运行时起作用,即可以动态更改。

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券