Я пытаюсь разработать быстрое приложение qt, используя qml. Из документации qt я понял, что эти элементы управления поддерживают автоматическую стилизацию (например, есть материал светлый / материал темные темы.
Однако, когда я попытался применить его к элементу управления tabview, я могу ' не могу применить стиль. Я могу сделать правильное связывание ala Rectangle { color: Material.color(Material.Red)}
Это хорошо работает для поиска любого из предопределенных цветов, однако я не могу получить доступ к прикрепленным (унаследованным) свойствам, таким как Material.background
Как лучше всего применить их к элементам управления, которые его не поддерживают? Не похоже, что возможно связать свойство с присоединенным свойством - или, по крайней мере, qt / qml, кажется, запутался, потому что Material.
также считается пространством имен.
import QtQuick 2.9
import QtQuick.Window 2.3
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.2
import QtQuick.Controls.Material 2.1
ApplicationWindow {
id: mainWindow;
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Material.theme: Material.Dark
Material.accent: Material.Purple
TabView {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
tabPosition: Qt.BottomEdge
Material.theme: Material.Dark
Material.accent: Material.Purple
Tab {
title: "Red"
Material.theme: Material.Dark
Material.accent: Material.Purple
}
Tab {
title: "Blue"
Rectangle { color: "blue" }
}
Tab {
title: "Green"
Material.theme: Material.Dark
Material.accent: Material.Purple
}
style: TabViewStyle {
frameOverlap: 1
tab: Rectangle {
color: styleData.selected ? "steelblue" :"lightsteelblue"
border.color: "steelblue"
implicitWidth: Math.max(text.width + 4, 80)
implicitHeight: 20
radius: 2
Text {
id: text
anchors.centerIn: parent
text: styleData.title
color: styleData.selected ? "white" : "black"
}
}
frame: Item {
}
}
}
}