QML 的 Material 样式有问题
Having troubles with QML's Material style
不幸的是,我在查找有关 QtQuick.Controls.
更高版本的大量文档时遇到了麻烦
我遇到了以下问题:我创建了一个 80x80 的按钮并且没问题,但是当我决定尝试使用 Material 样式时。
当我使用按钮宽度默认样式时,它的正确高度为 80。当我使用 Material 样式时,高度看起来不同,您可以在图片上看到:橙色线是 80x3 像素,在第一个按钮它比按钮高,而第二个按钮(具有默认样式的按钮)没问题。
为什么会出现这种行为以及如何解决?
第一个按钮的代码(第二个相同,只是配置中使用默认样式)。
Button {
id: testButton
width: 80
height: 80
z: 1
anchors.top: parent.top
anchors.left: parent.left
//Material.elevation: 3
Material.background: "#404244"
highlighted: true
contentItem: Rectangle {
anchors.fill: parent
opacity: 0.0
Text {
text: "test1"
color: "white"
font.pixelSize: 26
anchors.top: parent.top
anchors.topMargin: 15
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: "test2"
color: "white"
font.pixelSize: 14
anchors.bottom: parent.bottom
anchors.bottomMargin: 20
anchors.horizontalCenter: parent.horizontalCenter
}
}
Rectangle {
color: "#ff5e00"
width: 4
height: 80
}
}
默认尺寸来自 Material design guidelines, which defines a 36dp visual height vs. 48dp touch area. Therefore there's a default padding of 6dp at the top and bottom. Evidently, the padding should be defined in a smarter way, and not stick there no matter what the dimensions are. Feel free to report a bug。目前,您可以使用例如background.anchors.fill
使背景填满整个按钮:
Button {
id: button
background.anchors.fill: button
}
不幸的是,我在查找有关 QtQuick.Controls.
更高版本的大量文档时遇到了麻烦我遇到了以下问题:我创建了一个 80x80 的按钮并且没问题,但是当我决定尝试使用 Material 样式时。
当我使用按钮宽度默认样式时,它的正确高度为 80。当我使用 Material 样式时,高度看起来不同,您可以在图片上看到:橙色线是 80x3 像素,在第一个按钮它比按钮高,而第二个按钮(具有默认样式的按钮)没问题。
为什么会出现这种行为以及如何解决?
第一个按钮的代码(第二个相同,只是配置中使用默认样式)。
Button {
id: testButton
width: 80
height: 80
z: 1
anchors.top: parent.top
anchors.left: parent.left
//Material.elevation: 3
Material.background: "#404244"
highlighted: true
contentItem: Rectangle {
anchors.fill: parent
opacity: 0.0
Text {
text: "test1"
color: "white"
font.pixelSize: 26
anchors.top: parent.top
anchors.topMargin: 15
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: "test2"
color: "white"
font.pixelSize: 14
anchors.bottom: parent.bottom
anchors.bottomMargin: 20
anchors.horizontalCenter: parent.horizontalCenter
}
}
Rectangle {
color: "#ff5e00"
width: 4
height: 80
}
}
默认尺寸来自 Material design guidelines, which defines a 36dp visual height vs. 48dp touch area. Therefore there's a default padding of 6dp at the top and bottom. Evidently, the padding should be defined in a smarter way, and not stick there no matter what the dimensions are. Feel free to report a bug。目前,您可以使用例如background.anchors.fill
使背景填满整个按钮:
Button {
id: button
background.anchors.fill: button
}