2017-10-27 8 views
0

Slider을 QML로 만들려고합니다. 슬라이더의 maximumValue 속성은 응용 프로그램의 특정 상태에 따라 달라질 수 있습니다. maximumValue 속성이 변경되면 value 속성이 maximumValue에 있도록 슬라이더를 "재설정"하고 싶습니다. 내가 겪고있는 문제는 maximumValue 속성을 변경하면 내 value 속성이 오른쪽 속성으로 변경되지만 예를 들어 핸들을 클릭하지 않는 한 시각적으로 이전 maximumValue 속성으로 유지된다는 것입니다. 아래에서QML 슬라이더 값이 시각적으로 업데이트되지 않습니다.

import QtQuick 2.5 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.4 
import QtQuick.Controls.Styles 1.2 

ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    property int maxVal: 1 

    Item { 
     width: 20 
     height: 200 

     Slider { 
      anchors.fill: parent 

      orientation: Qt.Vertical 

      maximumValue: maxVal 
      minimumValue: 0 
      value: 1 
      stepSize: 1.0 

      style: SliderStyle { 
       groove: Rectangle { 
        width: control.height 
        height: control.width 

        color: "red" 
       } 

       handle: Rectangle { 
        width: 20 
        height: 20 

        color: "green" 

        Text { 
         anchors.centerIn: parent 

         text: control.value 
        } 
       } 
      } 

      onMaximumValueChanged: value = maximumValue 
     } 
    } 

    Button { 
     anchors.right: parent.right 

     text: "Press Me" 

     onClicked: maxVal = 100 
    } 
} 

특정 단계의 스크린 샷을 볼 수 있습니다 여기에

이 문제를 재현하는 간단한 더미 코드입니다.

는 응용 프로그램이 열리면 : on application start

나는, 당신은 value 한 변화 1에서 100까지를 볼 수있는 1에서 100로 maximumValue를 설정 "나를 눌러"버튼을 누르면하지만 시각을 때 1 개 위치에 체재 : I 슬라이더 (초록색 사각형)의 처리기 클릭하면 on button press

마지막 다음 업데이트하고 100 on slider handle press

내지 1의 값을 스위치

다음은 gif와 동일한 내용입니다. slider value problem demonstrated visually

누구든지이 문제가 발생 했습니까?

+0

@derM 45 행에서 문제가 무엇인지 잘 모르겠습니다. 오타를 만들었습니까? 이 문제가 없다는 것은 무엇을 의미합니까? 내 더미 코드를 실행하고 버튼을 누르면 녹색 핸들이 맨 위에 있고 100이라고 표시됩니까? 어떤 Qt 버전을 사용하고 있습니까? 나는 둘 다 시도했다. 5.6.2. 5.9.2. – Silex

+0

나는 다음과 같이 말해야한다. 문제를 재현 할 수 없다고 생각했다. 내가 실수 한 것 같아. – derM

답변

1

QTBUG-63354처럼 보이며 Qt 5.9.3에서 수정 예정입니다.

+0

이것을 지적 해 주셔서 감사합니다. 버그는'maximumValue'가 더 작은 값으로 설정 될 때 말하고 있지만 실제로는 양방향으로 발생합니다. 그냥 위의 예제를 사용해 보았습니다 ... 솔직히 믿을 수는 없습니다 ... 이번 달에 Qt/QML 버그를 겪은 제 4 번째 시간이며 어떻게 든 해킹해야합니다 ... – Silex

+0

가능하면 나는 제안 할 것입니다 Qt Quick Controls 2로 이동합니다. 활성 조정이있는 곳입니다. – Mitch

+0

불행히도 현재 Qt Quick Controls 2를 사용할 수 없지만 제안 해 주셔서 감사합니다. – Silex