Qt 如何设置Qml文本项的行距?

Qt 如何设置Qml文本项的行距?,qt,widget,qml,kde,plasmoid,Qt,Widget,Qml,Kde,Plasmoid,我搞不懂这个。我是指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?"

我搞不懂这个。我是指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

一个好习惯是保持健康。浏览它,您可以看到一个名为的属性。我相信这就是你要找的。从文件中:

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
        
    }
}
以下是使用不同的
线宽值的结果(在典型的MacOS上)

单间距

1.5倍、两倍、三倍


但是,如果要模拟其他行距枚举,请执行以下操作:

At least
Exactly
您需要修改像素高度。您可以通过设置为
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

一个好习惯是保持健康。浏览它,您可以看到一个名为的属性。我相信这就是你要找的。从文件中:

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
        
    }
}
以下是使用不同的
线宽值的结果(在典型的MacOS上)

单间距

1.5倍、两倍、三倍


但是,如果要模拟其他行距枚举,请执行以下操作:

At least
Exactly
您需要修改像素高度。您可以通过设置为
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


请提供一个我很乐意提供的示例,但请举例说明。。。你在破坏什么?但除此之外,有没有办法在没有行距/段落间距的情况下定义行距/段落间距?我想看看产生问题的代码,因为我认为这取决于它的实现,所以在这种类型的问题中:我的代码不起作用OP必须提供一个,你能分享一个吗?我理解,但这是一个更一般的问题。我会发布一些代码让它更清晰。我可以提供一个GridLayout破坏东西的例子,但是我需要做一些工作来修剪我现有的代码等。所以我只是指一个我可以在这里使用的通用属性。线条高度我猜,定义了线条的高度,而不是它们之间的空间,似乎打破了我的布局。我在文档中找不到任何这样的属性。请提供一个我愿意提供的示例,但举个例子说明。。。你在破坏什么?但除此之外,有没有办法在没有行距/段落间距的情况下定义行距/段落间距?我想看看产生问题的代码,因为我认为这取决于它的实现,所以在这种类型的问题中:我的代码不起作用OP必须提供一个,你能分享一个吗?我理解,但这是一个更一般的问题。我会发布一些代码让它更清晰。我可以提供一个GridLayout破坏东西的例子,但是我需要做一些工作来修剪我现有的代码等。所以我只是指一个我可以在这里使用的通用属性。线条高度我猜,定义了线条的高度,而不是它们之间的空间,似乎打破了我的布局。我在文档中找不到任何这样的属性。谢谢您的详细回答!正如我在评论中所说:“所以我只是指我可以在这里使用的一个通用属性。我猜,LineHeight定义了线条的高度,而不是它们之间的空间,似乎破坏了我的布局。”这可能就是锚的破坏程度。物业是,但没关系。哦,天哪,我一定是瞎了。事实上,在这里提问之前,我尝试将其设置为2x,结果是我的标签完全从矩形中脱落,所以我假设该属性完全做了其他事情。我想这与我的锚定设置有关,因为我后来发现,在我的小部件中,将锚定与基于根项目大小的动态字体大小调整相结合也会改变标签相对于背景矩形的位置。无论如何很高兴知道这正常工作。谢谢你的详细回答!正如我在评论中所说:“所以我只是指我可以在这里使用的一个通用属性。我猜,LineHeight定义了线条的高度,而不是它们之间的空间,似乎破坏了我的布局。”这可能就是锚的破坏程度。物业是,但没关系。哦,天哪,我一定是瞎了。事实上,在这里提问之前,我尝试将其设置为2x,结果是我的标签完全从矩形中脱落,所以我假设该属性完全做了其他事情。我想这与我的锚定设置有关,因为我后来发现,在我的小部件中,将锚定与基于根项目大小的动态字体大小调整相结合也会改变标签相对于背景矩形的位置。无论如何很高兴知道这是正常的。