如何在Qt-QML中创建方形按钮?
我试图在QML中创建一个简单的方形按钮,但它并没有按预期工作。以下是代码的最低数量:如何在Qt-QML中创建方形按钮?,qt,button,qml,Qt,Button,Qml,我试图在QML中创建一个简单的方形按钮,但它并没有按预期工作。以下是代码的最低数量: import QtQuick 2.7 import QtQuick.Controls 2.1 Page { id: app width: 400 height: 640 Button { width: 48 height: 48 } } 产生这个结果的原因是: 知道发生了什么吗?我浏览了文档,试图通过设置来设置implicitWi
import QtQuick 2.7
import QtQuick.Controls 2.1
Page {
id: app
width: 400
height: 640
Button {
width: 48
height: 48
}
}
产生这个结果的原因是:
知道发生了什么吗?我浏览了文档,试图通过设置来设置implicitWidth
和implicitHeight
,但这会阻止按钮的内置悬停和阴影功能
Button {
background: Rectangle {
implicitWidth: 48
implicitHeight: 48
color: "gray"
}
}
结果:
有没有办法在不明确定义背景项的情况下设置所需的大小
编辑: 我还尝试将所有
填充设置为0,以查看填充是否存在问题:
Button {
width: 48
height: 48
topPadding: 0
bottomPadding: 0
leftPadding: 0
rightPadding: 0
}
以及按照同事的建议添加文本元素以查看其放置位置:
Button {
width: 48
height: 48
Text {
text: "hello"
}
}
文本位置向我暗示,按钮可能会超出可见灰色矩形的上限。会是这样吗
另一个注意事项:我使用的仿真器是安装在Qt Creator中的AppStudio for ArcGIS仿真器。Qt 5.10.0,Windows 10
知道发生了什么吗?我浏览了文档,试图通过定义的背景项设置implicitWidth和implicitHeight,但这会阻止按钮的内置悬停和阴影功能
这可能是导致它不成正方形的原因。将每个填充属性设置为0(或相等值)应有助于:
leftPadding: 0
rightPadding: 0
topPadding: 0
bottomPadding: 0
知道发生了什么吗?我浏览了文档,试图通过定义的背景项设置implicitWidth和implicitHeight,但这会阻止按钮的内置悬停和阴影功能
这可能是导致它不成正方形的原因。将每个填充属性设置为0(或相等值)应有助于:
leftPadding: 0
rightPadding: 0
topPadding: 0
bottomPadding: 0
Mitch在正确的轨道上,有一些填充,但背景矩形也有以下线条:
height:parent.height-12
这有点麻烦。你可以通过将按钮的高度设置为比宽度高12(同时改变填充)来解决这个问题,但我不建议这样做
相反,就像他们建议的那样,我将制作MyButton.qml并在那里复制材质样式Button.qml代码,只需更改背景高度和控件填充。这使得以后更容易进行更多的样式更改,因为您不需要更改应用程序中的所有按钮。Mitch在正确的轨道上,有一些填充,但背景矩形也有以下线条:
height:parent.height-12
这有点麻烦。你可以通过将按钮的高度设置为比宽度高12(同时改变填充)来解决这个问题,但我不建议这样做
相反,就像他们建议的那样,我将制作MyButton.qml并在那里复制材质样式Button.qml代码,只需更改背景高度和控件填充。这使得以后更容易进行更多的样式更改,因为您不需要更改应用程序中的所有按钮。使用此代码,我可以得到正方形、等边按钮。Windows10,Qt5。11@folibis我对绘制非等边正方形的代码更感兴趣;)使用这个代码,我得到了正方形,等边的按钮。Windows10,Qt5。11@folibis我对绘制非等边正方形的代码更感兴趣;)谢谢@Mitch,我也试过了,没用。将更新问题以包含示例。谢谢@Mitch,我也尝试过,但没有效果。将更新问题以包含示例。此方法可以找到问题的根源。将+12添加到高度会使按钮显示为方形。我仍然看到顶部的填充问题,所以创建自定义文件可能是最好的选择。这种方法可以找到问题的根源。将+12添加到高度会使按钮显示为方形。我仍然看到顶部的填充问题,所以创建自定义文件可能是最好的选择。