是否有办法更改样式表中QDockWidget(QT4.8)的悬停/按下图标?我使用这种样式来更改默认状态的按钮图像:
QDockWidget{
font-weight: bold;
titlebar-close-icon: url(:/icons/ui-dock-close-off.png);
titlebar-normal-icon: url(:/icons/ui-dock-float-off.png);
}
我试过几种不同的方法,但似乎都没有用。
QDockWidget::float-button:hover{
image: url(:/icons/icons/ui-dock-float-hover.png);
}
QAbstractButton#qt_dockwidget_floatbutton{
image: url(:/icons/icons/ui-dock-float-hover.png);
}
发布于 2016-04-14 02:31:45
我只是想把这事做好,我自己。我发现QDockWidget的默认标题栏的qss行为在行为上非常奇怪。
最下面是对我有用的最终结果,但首先有一些解释要做。
第一件事是使用“图像”设置图标不允许设置图标的大小,它最终被缩小到最小。正因为如此,我不能用我想要的方式使用“标题栏-关闭图标:没有”。
第二种情况是,您将无法使用“QDockWidget::关门按钮:悬停”和“标题栏-关闭图标”设置的“图像”设置,因为“悬停”图像将绘制在图标后面。这很可能是为什么你没有在你的例子中看到你期望的结果。
我在下面所做的是设置一个“空白”(完全透明的) png作为图标,这意味着我可以使用“图标大小”设置来控制按钮的大小。然后,我为按钮设置“图像”,并使用“悬停”子设置来处理突出显示的图标。
最后,我发现(至少在我的环境中)图标更改不会继续,除非小部件被浮动,然后重新停靠,此时图标都已经出现并显示了。为了解决这个问题,我只需要在应用样式之后调用setFloating(True),然后调用setFloating(False)。没有可见的闪烁或任何我能看到的东西,所以我要用它。
QDockWidget {
background: rgb(36,38,41);
titlebar-close-icon: url(:icons/blank.png);
titlebar-normal-icon: url(:icons/blank.png);
}
QDockWidget::title {
background: transparent;
color: transparent;
text-align: center;
border: none;
}
QDockWidget::close-button, QDockWidget::float-button {
border: none;
background: transparent;
icon-size: 12px;
padding: 1px;
}
QDockWidget::float-button {
image: url(:icons/undock.png);
}
QDockWidget::close-button {
image: url(:icons/close.png);
}
QDockWidget::float-button:hover {
image: url(:icons/undock_hover.png);
}
QDockWidget::close-button:hover {
image: url(:icons/close_hover.png);
}
https://stackoverflow.com/questions/32145080
复制相似问题