我知道Qt默认使用操作系统样式来装饰QProgressBar。
我想知道是否有一种方法可以在保持操作系统样式的情况下更改QProgressBar的颜色。
我尝试了如下所示的几种方法。
更改调色板:
QPalette palette = myProgressBar->palette();
palette.setBrush(QPalette::Highlight, someColor); // setColor() did the same
myProgressBar->setPalette(palette);
直接更改样式:
QPalette palette = myProgressBar->palette();
palette.setBrush(QPalette::Highlight, someColor); // setColor() did the same
myProgressBar->style()->polish(palette);
但是这两种方法完全被忽略了,什么也没有改变。
我发现唯一改变
QProgressBar
颜色的方法是通过使用 setStyleSheet()
设置样式表。但问题是它同时忽略了操作系统的样式。我认为可以通过样式表“大概”复制操作系统的样式,但我不知道是否可以直接应用操作系统样式并仅更改颜色调色板。
如果有任何有用的答案,我将非常感激。
编辑: 操作系统并不固定。我正在尝试使其在Windows下工作,但应用程序可能会运行在另一个操作系统(一些Linux发行版)。