QML - Почему implicitWidth TabBar зависит от привязки внутренней ширины TabButton к его implicitWidth?
Почему в следующем коде
implicitWidth
из
TabBar
меняется, когда я комментирую
width: implicitWidth
в
TabButton
с? Почему то, что я устанавливаю
width
компонента быть равным его
implicitWidth
изменить
implicitWidth
? Также я подумал
width
был установлен на
implicitWidth
по умолчанию в любом случае, когда
width
не задан явно. Поэтому я не понимаю, зачем
width: implicitWidth
будет иметь какие-либо последствия. Вот код:
Item {
id: root
height: 480
width: 640
RowLayout {
anchors.fill: parent
TabBar {
id: bar
Layout.fillHeight: true
implicitWidth: Math.max(homeTabButton.implicitWidth, discoverTabButton.implicitWidth, activityTabButton.implicitWidth)
background: Rectangle {
color: "yellow"
}
contentItem: ListView {
model: bar.contentModel
}
TabButton {
id: homeTabButton
width: implicitWidth // I cannot comment this out
text: qsTr("Home")
}
TabButton {
id: discoverTabButton
width: implicitWidth // I cannot comment this out
text: qsTr("Discover")
}
TabButton {
id: activityTabButton
width: implicitWidth // I cannot comment this out
text: qsTr("Activity")
}
}
StackLayout {
Layout.fillWidth: true
Layout.fillHeight: true
currentIndex: bar.currentIndex
Pane {
id: homeTab
background: Rectangle {
color: "blue"
}
}
Pane {
id: discoverTab
background: Rectangle {
color: "red"
}
}
Pane {
id: activityTab
background: Rectangle {
color: "green"
}
}
}
}
}
1 ответ
U присвоили неявную ширину перед
implicitWidth: Math.max(homeTabButton.implicitWidth, discoverTabButton.implicitWidth, activityTabButton.implicitWidth)
вот почему, когда ширина комментария в tabButton принимает ширину как 0.
использовать
width: Math.max(homeTabButton.implicitWidth, discoverTabButton.implicitWidth, activityTabButton.implicitWidth)
в вашем коде и прокомментируйте эту ширину в tabButton.