gpt4 book ai didi

qt - 如何在 Pane 中使用 Material.elevation 和 Radius?

转载 作者:行者123 更新时间:2023-12-05 08:26:16 24 4
gpt4 key购买 nike

我正在尝试使用我添加的 Pane Material.elevation: 6但反过来我想给它一个圆边,我不能同时把两者放在一起

已尝试以下操作,但海拔高度丢失。

Pane {
// ...
Material.elevation: 6

background: Rectangle {
radius: 15
}
// ...
}

我们的想法是,您可以同时保留这两个方面以实现如下目标:

最佳答案

您必须根据 source code 进行覆盖:

RoundPane.qml

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Controls.Material.impl 2.12

Pane {
id: control
property int radius: 2
background: Rectangle {
color: control.Material.backgroundColor
radius: control.Material.elevation > 0 ? control.radius : 0

layer.enabled: control.enabled && control.Material.elevation > 0
layer.effect: ElevationEffect {
elevation: control.Material.elevation
}
}
}

IconPane.qml

import QtQuick 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Layouts 1.12

RoundPane {
id: control
property alias name: txt.text
property alias icon: image.source
Material.elevation: 6
radius: 15
RowLayout{
anchors.fill: parent
Image {
id: image
sourceSize.height: parent.height
}
Text {
id: txt;
}
}
}

ma​​in.qml

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")

IconPane{
name: "Stack <b>Overflow</b>"
icon: "https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.svg"
anchors.centerIn: parent
}
}

enter image description here

关于qt - 如何在 Pane 中使用 Material.elevation 和 Radius?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55482895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com