Nano Hash - криптовалюты, майнинг, программирование

QML — перейти к верхнему нижнему краю листа

Как вы говорите flickable, чтобы перейти к нижней части текущей страницы. QML - Переместить наверх #TOP не дает ответа на этот вопрос.

18.08.2014

Ответы:


1

Вам нужно будет рассчитать его и установить в contentY. Например:

Flickable {
    width: 200; height: 200
    contentWidth: image.width; contentHeight: image.height

    Image { id: image; source: "file:///path/toBigImageFile" }

    contentY : contentHeight-height
}
18.08.2014
  • хорошо, это новый для меня синтаксис; Вы можете объяснить, что такое contentHeight-height? Звучит избыточно, а что еще можно сделать с тире? 20.08.2014
  • Здесь мы фактически вычисляем позицию contentY из contentHeight (фактическая высота изображения), а затем вычитаем из нее высоту (высоту просмотра). Таким образом, в приведенном выше примере, если высота файла изображения составляет 768, а высота представления - 200, тогда координата Y представления устанавливается равной 568, что можно рассматривать как нижнюю часть. 20.08.2014
  • оооо, это минус :D Это объясняет; Благодарность! 20.08.2014

  • 2

    Я продолжал добавлять текст в TextArea и хотел, чтобы он оставался внизу, пока кто-нибудь не изменит положение прокрутки.

    Flickable{
        id: flickable
        anchors.fill: parent
    
        boundsBehavior: Flickable.DragAndOvershootBounds
        flickableDirection: Flickable.VerticalFlick
    
        ScrollBar.vertical: ScrollBar {
            id: flickScroll
        }
    
        TextArea.flickable: TextArea{
            id: monitor
            width: parent.width
            height: parent.height
    
            readOnly: true
            wrapMode: TextArea.Wrap
            persistentSelection: true
            leftPadding: 6
            rightPadding: 6
            topPadding: 0
            bottomPadding: 0
            background: null
        }
    
        function currPos(){
            return flickable.contentY
        }
    
        function setPos(pos){
            flickable.contentY = pos;
        }
    
        function getEndPos(){
            var ratio = 1.0 - flickable.visibleArea.heightRatio;
            var endPos = flickable.contentHeight * ratio;
            return endPos;
        }
    
        function scrollToEnd(){
            flickable.contentY = getEndPos();
        }
    
        function append(text){
            var pos, endPos, value;
    
            value = monitor.text + String(text);
            // Limit value size here
    
            endPos = getEndPos();
            pos = currPos();
    
            monitor.text = value;
    
            if(pos == endPos){
                scrollToEnd();
            } else {
                setPos(pos);
            }
        }
    }
    
    11.09.2019
  • Это был очень полезный ответ. Единственное изменение, которое я бы предложил, — это округлить расчет endPos. Это решает небольшую ошибку, возникающую из-за точности вычисления с плавающей запятой. 22.07.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..