簡體   English   中英

qt 快速材質樣式控件

[英]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。您應該使用TabBarTabButton ,因為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM