कैसे से बचने के लिए बाध्यकारी पाश स्थापित करने के लिए जब गद्दी?

0

सवाल

मैं चाहता हूँ अद्यतन करने के लिए गद्दी का एक ScrollView है, अगर वहाँ एक स्क्रॉलबार दिखाई दे रहा है, लेकिन अन्य पर हाथ, की दृश्यता स्क्रॉलबार पर निर्भर करता है, ऊंचाई/चौड़ाई सामग्री के अंदर स्क्रॉलबार, जो परिवर्तन जब गद्दी परिवर्तन. निम्नलिखित कारणों में से एक बाध्यकारी पाश:

ScrollView {
  id: control
  rightPadding: Scrollbar.vertical.visible ? Scrollbar.vertical.width : 0
   ....


  ScrollBar.vertical: ScrollBar {
    parent: control
    visible: control.height < height
   ...
  }
}

कैसे कर सकते हैं मैं इस लक्ष्य को हासिल करने के बिना एक बाध्यकारी पाश? धन्यवाद

qml qt qtquickcontrols2
2021-11-15 14:43:32
1

सबसे अच्छा जवाब

0

मैं प्राप्त करने में असमर्थ था अपने कोड frag काम करने के लिए - यह की तरह लगता है अपने कोड पर निर्भर होना चाहिए की सामग्री को अपनी ScrollViewहै , लेकिन यह शामिल नहीं है अपने कोड में frag, और यह गायब हो सकता है कुछ अन्य संदर्भ.

वैसे भी, मैं सुझाव है कि आ रहा है यह एक थोड़ा अलग तरह से बदलें ScrollView'एस सामग्री की चौड़ाई के आधार पर कि क्या है या नहीं ScrollBar दिखाई दे रहा है. मैं भी सेट ScrollBar नीति के बजाय दृश्यता. मैं बनाया है एक पूर्ण उदाहरण है जहाँ आप कर सकते हैं जोड़ें या निकालें का उपयोग सामग्री के लिए एक स्लाइडर प्रदर्शन:

import QtQuick 2.15
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12

ApplicationWindow {
    id: root
    visible: true
    height: 500
    width: 500

    ColumnLayout {
        anchors {
            fill: parent
        }

        Slider {
            // use slider to add delegates to the ScrollView to toggle the scroll bar visibility
            id: slider
            to: 20
        }

        ScrollView {
            id: scroll
            Layout.fillHeight: true
            Layout.fillWidth: true
            ScrollBar.vertical.policy: scrollBarVisible ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff

            property bool scrollBarVisible: scroll.contentHeight > scroll.height

            ColumnLayout {
                width: scroll.scrollBarVisible ? scroll.width - scroll.ScrollBar.vertical.width : scroll.width // change the width of the 

                Repeater {
                    model: slider.value
                    delegate: Rectangle {
                        color: "tomato"
                        Layout.fillWidth: true
                        Layout.preferredHeight: 150
                    }
                }
            }
        }
    }
}

एक बात नोट करने के लिए हालांकि - अपने ScrollView सामग्री नहीं हो सकता है अपनी ऊंचाई पर निर्भर करती है, इसकी चौड़ाई, उदाहरण के लिए, यदि सामग्री कुछ था Text लपेटता है कि वहाँ नहीं है यदि पर्याप्त चौड़ाई के कारण यह लम्बे प्राप्त करने के लिए जब की चौड़ाई कम हो जाती है । इस में वापस पाने के लिए अनंत लूप क्षेत्र है.

2021-11-16 04:25:42

अपनी टिप्पणी के लिए धन्यवाद. यह ठीक है कि मैं क्या है के लिए सामग्री - एक textArea के साथ शब्द की चादर, जहां ऊंचाई पर निर्भर करता है चौड़ाई. वहाँ है एक तरह से मैं कर सकते हैं से बचने के प्रत्यावर्तन इस मामले में?
Denis

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में