2016-08-28 5 views
3

SplitView을 사용하여 QML 앱을 작성하고 있습니다. 초기 공간이 항목간에 균등하게 분산되기를 원하지만 대신 한 항목이 모든 공간을 차지합니다.SplitView의 초기 공간 분포도

enter image description here

import QtQuick 2.7 
import QtQuick.Layouts 1.3 
import QtQuick.Controls 1.4 

ApplicationWindow { 
    id:window; visible:true 
    width:500; height:300 
    title:'Borked Layouts' 

    SplitView { 
     orientation:Qt.Horizontal 
     anchors.fill:parent 
     Rectangle { color:'red' 
      Layout.minimumWidth:50; Layout.fillWidth:true 
      Layout.preferredWidth:window.width/2 
     } 
     SplitView { 
      orientation:Qt.Vertical 
      Layout.minimumWidth:50 
      Layout.preferredWidth:window.width/2 
      Rectangle { color:'green' 
       Layout.minimumHeight:50; Layout.fillWidth:true 
      } 
      Rectangle { color:'blue' 
       Layout.minimumHeight:50; Layout.fillWidth:true 
      } 
     } 
    } 
} 

은 내가 원하는 분포를 달성하기 위해 공간을 사이에 세퍼레이터를 드래그 할 수 있으며, 최소 사이즈 영광. 하지만 초기 배포가 항목간에 공유되도록하려면 어떻게해야합니까?

enter image description here

+0

당신이 3 개 이상에서보기를 분할하고 ... 처음부터 – dtech

답변

3

는 내가 전에 SplitView을 사용한 적이, 그래서 이것은 나에게 놀라운 일을했지만, 유사한 문제에 대한 bugreports.qt.io를 통해보고 후에, 나는 this을 보았다 :

SplitView 정말 레이아웃 아니다 따라서 첨부 된 Layout 속성에있는 모든 속성을 지원하지는 않습니다. SplitView를 사용할 때 아이템에 직접 너비와 높이를 설정하십시오.

일반적으로 Layout 사용법과 충돌하므로이 방법은 확실하지 않습니다.하지만 좋은 이유가 있다고 생각합니다.

그래서, 당신은 이런 식으로 그것을 달성 할 수

import QtQuick 2.7 
import QtQuick.Layouts 1.3 
import QtQuick.Controls 1.4 

ApplicationWindow { 
    id: window 
    visible: true 
    width: 500 
    height: 300 

    SplitView { 
     orientation: Qt.Horizontal 
     anchors.fill: parent 

     Rectangle { 
      color: 'red' 
      width: window.width/2 
     } 
     SplitView { 
      orientation: Qt.Vertical 
      Layout.minimumWidth: 50 

      Rectangle { 
       color: 'green' 
       Layout.minimumHeight: 50 
       Layout.fillWidth: true 
      } 
      Rectangle { 
       color: 'blue' 
       Layout.minimumHeight: 50 
       Layout.fillWidth: true 
      } 
     } 
    } 
} 
+0

을 자신의 분할보기를 얼마나 형편없는 크기 조정 발견하고 구현해야까지! 그것이 내가 문서화를 믿을 때 얻는 것입니다. 문서가 말하기 때문에 명시 적 폭이나 높이를 사용하지 않았습니다 : _ "fillWidth 항목이 추가 공간에 맞게 자동으로 크기가 조정되므로 너비와 높이에 대한 명시적인 할당이 무시됩니다 (그러나 Layout.minimumWidth 및 Layout.maximumWidth는 여전히 유지됩니다).) _ – Phrogz

+0

문장의 두 번째 부분은 실제로 항목이 아닌'fillWidth' 항목을 참조하고 있습니다. 그 문서가 더 명확해질 수 있습니다. – Mitch

+0

아 ... 그건 내가 가진 것보다 다른 해석이지만, 당신이 말하는 것을 볼 수 있습니다. – Phrogz