[英]qt quick material style controls
我正在嘗試使用 qml 設計一個 qt 快速應用程序。 從我在 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 {
}
}
}
}
TabView
來自 Controls 1。您應該使用TabBar
和TabButton
,因為 Material 樣式僅適用於 Qt Quick Controls 2:
https://doc.qt.io/qt-5/qtquickcontrols2-differences.html#type-comparison-table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.