qt快速材质样式控件

问题描述 投票:0回答:1

我正在尝试使用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 {

            }
        }
    }

}

qt qml qt-quick
1个回答
0
投票

[TabView来自控件1。您应该使用TabBarTabButton,因为材料样式仅在Qt Quick Controls 2中可用:]

https://doc.qt.io/qt-5/qtquickcontrols2-differences.html#type-comparison-table

© www.soinside.com 2019 - 2024. All rights reserved.