QtQuick TextEdit

50 篇文章 0 订阅

TextEdit用于显示多行、可编辑的格式化文本。
可以显示纯文本、富文本。

import QtQuick

TextEdit{
    width: 240
    textFormat: Text.RichText
    text: "<b>Hello</b><i>World!</i>"
    font.family: "Helvetica"
    font.pointSize: 20
    color: "blue"
    focus: true
}

这里将focus设置为true,使TextEdit项目接收键盘输入。
在这里插入图片描述

TextEdit没有提供滚动条、光标跟随等通常行为。
一般会使用Flickable元素提供滚动,实现光标跟随。

例如:

import QtQuick

Item {
    width: 400
    height: 300
    Flickable{
        id:flick
        
        anchors.fill: parent
        contentWidth: edit.paintedWidth
        contentHeight: edit.paintedHeight
        clip: true
        
        function ensureVisible(r){
            if(contentX >= r.x)
                contentX = r.x
            else if(contentX + width <= r.x + r.width)
                contentX = r.x + r.width - width
            
            if(contentX >= r.y)
                contentY = r.y
            else if(contentY + height <= r.y + r.height)
                contentY = r.y + r.height - height
        }
        
        TextEdit{
            id:edit
            width: flick.width
            height: flick.height
            font.pointSize: 15
            wrapMode: TextEdit.Wrap
            focus: true
            onCursorRectangleChanged:flick.ensureVisible(cursorRectangle)
        }
        
        Rectangle{
            id:scrollBar
            anchors.right: flick.right
            y: flick.visibleArea.yPosition * flick.height
            width: 10
            height: flick.visibleArea.heightRatio * flick.height
            color: "lightgrey"
        }
    }
}

实际项目中经常用TextArea来代替TextEdit,暂时感觉不是很重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

barbyQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值