1

为什么当我在s 中注释掉时,在下面implicitWidth的更改代码中?为什么我将组件设置为等于它的事实会改变?另外,我认为在未明确设置时默认设置为。所以我不明白为什么做会有任何影响。这是代码:TabBarwidth: implicitWidthTabButtonwidthimplicitWidthimplicitWidthwidthimplicitWidthwidthwidth: 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"
            }
         }
      }
   }
}
4

1 回答 1

0

你之前已经分配了一个隐式宽度

implicitWidth: Math.max(homeTabButton.implicitWidth, discoverTabButton.implicitWidth, activityTabButton.implicitWidth)

这就是为什么当您在 tabButton 中评论宽度时,它会将宽度设为 0。

利用

width: Math.max(homeTabButton.implicitWidth, discoverTabButton.implicitWidth, activityTabButton.implicitWidth)

在您的代码中并在 tabButton 中注释该宽度并查看。

于 2020-10-13T07:08:44.717 回答