Qt/QML学习-ScrollView

QML学习

main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15

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

    ScrollView {
        id: scrollView
        width: 200
        height: 200
        anchors.centerIn: parent
        clip: true
        ScrollBar.vertical.policy: ScrollBar.AlwaysOn
        ScrollBar.horizontal.policy: ScrollBar.AlwaysOn
        background: Rectangle {
            color: "yellow"
        }
        TextEdit {
            id: textEdit
            anchors.centerIn: parent
            text: "ScrollView + TextEdit"
            color: "red"
            font{
                pointSize: 30
                bold: true
            }
            selectByMouse: true
            selectionColor: "blue"
            cursorDelegate: Canvas {
                width: 4
                onPaint: {
                    var ctx = getContext('2d')
                    ctx.setLineDash([2, 2, 2])
                    ctx.lineWidth = 4
                    ctx.strokeStyle = "#444fff"
                    ctx.lineCap = "round"
                    ctx.beginPath()
                    ctx.moveTo(0, 0)
                    ctx.lineTo(0, height)
                    ctx.stroke();
                }
            }
        }
    }

    function scrollViewAddText(text) {
        // 给TextEdit添加文本
        textEdit.text += text
        // 调整视图到scrollView底部
        scrollView.ScrollBar.vertical.position =
                scrollView.contentHeight>scrollView.height?
                (scrollView.contentHeight - scrollView.height)
                 / scrollView.contentHeight: 0
    }

    Button {
        anchors.left: scrollView.right
        anchors.top: scrollView.top
        text: "添加文本"
        onClicked: {
            scrollViewAddText("\n一键三连")
        }
    }
}

演示

视频讲解

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值