Sam*_*nte 2 qt qml material-design
我正在尝试使用我添加的窗格,Material.elevation: 6
但反过来我想给它一个圆角,我不能同时将两者放在一起
尝试了以下操作,但海拔高度丢失。
Pane {
// ...
Material.elevation: 6
background: Rectangle {
radius: 15
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
这个想法是您可以同时保留这两个方面以实现以下目标:
eyl*_*esc 11
您必须根据源代码进行覆盖:
圆形面板.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
}
}
}
Run Code Online (Sandbox Code Playgroud)
图标面板.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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
主文件
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
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1141 次 |
最近记录: |