Есть ли способ изменить размер пользовательского элемента в соответствии с его содержанием? Я написал несколько примеров кнопок на QML, но мне нужно, чтобы размер изменялся с длиной текста каждый раз, когда игра воспроизводилась, если размер не определен в main.qml. Извините, но не могу найти что-то об этом по сети, а только обратный вопрос о том, как подобрать контент для родителя. Существует источник:QtQuick 2 - Пользовательский элемент, как изменить размер корневого объекта из его содержимого?
BreezeButton.qml
import QtQuick 2.2
Item {
id: root
width: 172
height: 72
property string caption: "Button"
property string iconSource: null
signal clicked
Rectangle {
id: body
border {
width: 2
color: "#808e8e"
}
anchors{
fill: parent
}
gradient: Gradient {
id: bodyGradient
GradientStop { position: 0.4; color: "#4d4d4d" }
GradientStop { position: 0.9; color: "#31363b" }
}
MouseArea{
id: bodyMouseArea
z: bodyText.z + 1
anchors {
fill: parent
}
hoverEnabled: true
onEntered: {
body.border.color = "#3daee9"
}
onExited: {
body.border.color = "#7f8c8d"
}
onPressed: {
body.color = "#3daee9"
body.gradient = null
}
onReleased: {
body.color = "#4d4d4d"
body.gradient = bodyGradient
}
onClicked: {
root.clicked()
}
}
Text {
id: bodyText
anchors {
top: body.top
bottom: body.bottom
left: icon.right
}
width: body.width - icon.width
font.pointSize: 14
color: "#fcfcfc"
text: caption
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
}
Image {
id: icon
source: iconSource
anchors {
left: body.left
top: body.top
bottom: body.bottom
leftMargin: 5
topMargin: 5
bottomMargin: 5
}
height: root.height - 8
width: icon.height
sourceSize.width: icon.width
sourceSize.height: icon.height
}
}
}
Например основной QML Кнопка может изменять размер каждый раз сцены играл, чтобы соответствовать его длина текста.
отлично, именно я искал. Спасибо. Я просто начинаю QML/Qt, поэтому не знаю всех ошибок и типов сейчас. – user3417815
Не беспокойтесь. :) Цель моего ответа состояла в том, чтобы помочь вам чувствовать себя более комфортно, рассматривая исходный код, даже если вы новичок. Иногда это проще, чем пытаться Google для решения конкретной проблемы или поиска в документах (когда вы не знаете, что искать). – Mitch
Отличный стиль описания и подробное описание того, как выполнять поиск и устранение неисправностей. –