2

我想不通这个。我的意思是 Qml 文本项中文本行之间的垂直间距。我不能使用富文本,而且 GridLayout 似乎破坏了我的换行、水平对齐和检查截断的能力。这是在一个矩形内。

Text{   
        width:10
        wrapMode: Text.Text.Wrap
        text:"This will be broken into multiple lines. How could I set the vertical spacing between them?"
     }

我是说:

在此处输入图像描述

VS

在此处输入图像描述

4

1 回答 1

7

一个好习惯是检查文档。浏览它,您可以看到一个名为 的属性lineHeight。我相信这就是你要找的。从文档中:

lineHeight : real

设置文本的行高。该值可以是像素或乘数,具体取决于lineHeightMode.

他们还告诉你如何使用它

默认值为 1.0 的乘数。行高必须为正值。

lineHeight用作乘数允许您在 MSWord 中模拟以下行间距枚举。

Single
1.5 lines
Double
Multiple

这是一个例子:

import QtQuick 2.0
import QtQuick.Window 2.0

Window {
    visible: true
    width: 200
    height: 300
    
    Text {
        id: text
        width: 175
        anchors.centerIn: parent
        
        //  text: "HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO"
        text: "Cat ipsum dolor sit amet, sleep nap. You call this cat food. Push your water glass on the floor."
        
        font.family: "Monaco"    // Monaco ❤️
        wrapMode: Text.WordWrap  // Make the text multi-line
        horizontalAlignment: Text.AlignHCenter

        //  lineHeight: 1.0  // single-spacing (default)
        lineHeight: 1.5  // 1.5 line-spacing
        //  lineHeight: 2.0  // double-spacing
        //  lineHeight: 3.0  // triple-spacing
        
    }
}

以下是使用不同值的结果lineHeight(在典型的 MacOS 上)

单间距

1x 行距

1.5x、双 (2x)、三 (3x)

1.5x 行距 2x 行距 3x 行距


但是,如果您想模仿其他行间距枚举:

At least
Exactly

您需要修改像素高度。您可以通过设置为 来做到这lineHeightMode一点Text.FixedHeight。像这样

Window {
    visible: true
    width: 200
    height: 300
    
    Text {
        id: text
        width: 175
        anchors.centerIn: parent
        
        text: "Cat ipsum dolor sit amet, sleep nap. You call this cat food. Push your water glass on the floor."
        
        font.family: "Monaco"    // Monaco ❤️
        wrapMode: Text.WordWrap  // Make the text multi-line
        
        
        lineHeightMode: Text.FixedHeight
        lineHeight: 6            // exaggerated, text will be scrunched up
        
    }
}

正好 6

正好 6

于 2018-11-19T01:23:24.280 回答