【发布时间】:2026-01-10 21:35:01
【问题描述】:
我想在 QML 中创建一个非常简单的调色板,如下所示:
QtObject {
property color foreground
property color background
property color primary
property color secondary
}
然后我希望能够为组件设置调色板并让该组件的所有(自定义)子控件自动继承调色板。要么到组件树的底部,要么直到我在其中一个孩子上设置另一个调色板。
+ root (Palette A)
+- child (inherit Palette A)
+-- child (inherit Palette A)
+- child (Palette B)
+-- child (inherit Palette B)
这有可能吗?
编辑:我目前考虑的方法是在root 组件中创建一个colorPalette 属性并从child 组件中引用它。每当我想覆盖当前调色板时,我只需将colorPalette 属性添加到child。
这当然可行,但我认为这不是一个非常干净的解决方案,因为那样我只能在存在全局 colorPalette 属性时使用我的组件。此外,这可能会导致以后的命名冲突。
【问题讨论】:
-
你已经做了什么?你遇到了哪些问题?请注意,SO 不是学习资源。
-
感谢提醒,我编辑了我的帖子。
-
请张贴Minimal, Complete, and Verifiable example,而不是描述代码。