【发布时间】:2015-03-04 09:55:00
【问题描述】:
我在我的一个项目中有一个 QwtPlot,我想以一种和谐的方式配置它的颜色 - 例如,如果背景颜色是白色,轴应该是黑色等。现在我可以做到这一点以“硬编码方式”:每次更改背景颜色(参考)时,我都会查看一个先前定义的轴颜色数组,并在该轴的数组中设置给定颜色。但这很“过时”,我想要一种更自动化的方式。
寻求帮助 here,Uwe 告诉我使用 QwtPlot::setPalette(color),它本身效果很好。问题是 QwtPlot 是一系列基于 QWidget 的小部件的子级,其颜色应在全局样式表文件中配置,我注意到当配置其中一个小部件的样式表时,它会使 QwtPlot 对 @ 的调用无效987654324@。就好像我应该在它们之间进行选择:如果我要在给定的小部件中使用至少一个对 setPalette 的调用,那么它的父级直到主小部件(在我的例子中是 QMainWindow)都不应该被配置与样式表系统。这似乎是关于setPalette 的这部分文档所说的:
警告:不要将此函数与 Qt 样式表一起使用。(source)
,但似乎只有在使用对setPalette 的全局调用时才会出现这种情况。
所以我的问题是:有没有办法以和谐的方式解决这个问题?或者我是否需要放弃该部分软件的样式表系统而只使用调色板?我试图以更“本地化”的方式制作样式表配置 - 即试图对系统说“此样式表配置仅对此小部件有效;不要将其延续到其子小部件”,但没有成功。如果这真的可行(因此我可能选择了错误的语法),我想知道。
【问题讨论】:
标签: qt stylesheet palette