首页 > 其他 > 详细

QML --》 文本输入TextInput与TextEdit

时间:2021-08-05 16:01:21      阅读:40      评论:0      收藏:0      [点我收藏+]

1、文本输入

文本输入允许用户输入一行文字。

import QtQuick 2.0

Rectangle{
    width: 200;
    height: 80;
    color: "linen";
    TextInput{
        id:input1
        x:8;y:8;
        width: 96;
        height: 20;
        focus: true;
        text:"Text Input 1";
        KeyNavigation.tab: input2    // 绑定tab键,当按下时会跳转到imput2
    }
    TextInput{
        id:input2
        x:8;y:36;
        width: 96;
        height: 20;
        text:"Text Input 2";
        KeyNavigation.tab: input1
    }
}

技术分享图片

 

 

2、当我们把TextInput当成组件时:

// Tline.qml
Rectangle{ width:
96; height: input.height + 8; Rectangle{ anchors.fill:parent; color: "lightsteelblue"; border.color: "gray"; } property alias text: input.text; property alias input: input TextInput{ id:input; height: 20; anchors.fill: parent; anchors.margins: 4; focus: true; } }

然后我们开始复用,再重写KeyNavigation时,就会发现我们无法把焦点切换到input2上。所以为了防止上述问题,我们需要引入焦点局域(FocusScope)

FocusScope{
    width: 96;
    height: input.height + 8;
    Rectangle{
        anchors.fill:parent;
        color: "lightsteelblue";
        border.color: "gray";
    }


    property alias text: input.text;
    property alias input: input

    TextInput{
        id:input;
        height: 20;
        anchors.fill: parent;
        anchors.margins: 4;
        focus: true;
    }
}

然后我们重写KeyNavigation时,就会发现我们可以把焦点切换到input2上。

 

TextEdit与textinput相似

FocusScope{
    width: 96;
    height: 96;
    Rectangle{
        anchors.fill:parent;
        color: "lightsteelblue";
        border.color: "gray";
    }


    property alias text: input.text;
    property alias input: input

    TextInput{
        id:input;
        anchors.fill: parent;
        anchors.margins: 4;
        focus: true;
    }
}

 

QML --》 文本输入TextInput与TextEdit

原文:https://www.cnblogs.com/caozewen/p/15102635.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!