使用Qt样式表自定义QScrollBar交叉点

5

我已经使用样式表自定义了水平和垂直滚动条,没有问题。

但是仍然有一个非常烦人的小区域保持空白:

水平和垂直滚动条的交叉点。一个小矩形。

如何改变它的颜色?(使用样式表)

谢谢!

Qt 4.7.1在Mac OSX Snow Leopard上

附:即使在Qt样式表示例中,它仍然是白色的。

2个回答

16

我意识到这是一个旧问题,但我找到了一个更好的解决方案。

QAbstractScrollArea::corner {
    background: somecolor;
}
或者,要隐藏它,请使用:
background: transparent;

3

默认情况下,滚动区域的角落将使用窗口调色板进行绘制。不幸的是,您无法仅使用样式表更改窗口调色板。但是,您可以创建一个虚拟小部件,并使用QAbstractScrollArea::setCornerWidget(QWidget *widget) 将其设置为在角落区域显示,然后使用样式表更改小部件的颜色。


谢谢,这个很难找到。 现在的问题是cornerWidget总是显示。我希望只有在交叉点时才显示它。 有什么想法吗? - Kirell
cornerWidget->setVisible(scrollArea->horizontalScrollBar()->isVisible() && scrollArea->verticalScrollBar()->isVisible());角落小部件->setVisible(scrollArea->horizontalScrollBar()->isVisible() && scrollArea->verticalScrollBar()->isVisible()); - Fred
它之前没有工作,我实际上重新实现了resizeEvent并且只在栏可见时设置角部小部件。否则删除它。感谢这个提示。 - Kirell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接