我正在为我的应用程序在QML中创建一个自定义控件。我想在桌面和Android上运行,因此我使用Material Style作为应用程序。这将颜色方案应用于所有现有的Qt Quick Controls 2控件(按钮,工具栏等)。但是如何在我的控制中使用这些颜色?我知道我可以使用相同的颜色和十六进制代码或其他任何颜色,但如果我改变主题中的强调色等,我希望我的控件的颜色会改变。
我已尝试SystemPalette
,但其中的颜色似乎并不遵循材质风格,而是始终遵循默认风格。
我可以访问材料颜色吗?如果应用程序在非物料模式下运行会发生什么?
答案 0 :(得分:4)
您可以导入样式:
import QtQuick.Controls.Material 2.2
或
import QtQuick.Controls.Universal 2.2
然后可以通过单身人士获得颜色:
console.log(Material.accent)
console.log(Material.primary)
// etc...
可以使用QQuickStyle从C ++检索当前样式(您需要链接到Qt5QuickControls2
库)
答案 1 :(得分:2)
刚想通了。在任何实际控件上设置id
,然后您可以访问“额外”颜色controlId.Material.buttonColor
等
答案 2 :(得分:0)
请记住,您还可以设置样式颜色。它也不是一个复杂的主题,每种风格有3-4种颜色。
因此,您可以在单身中定义自己的一组颜色,将您使用的任何样式设置为这些颜色,并在自定义内容中使用相同的颜色。这样,您将在默认设置的元素和元素之间实现一致性,颜色更改将影响所有内容,无论您使用哪种样式。