1

我无法在 QML(Windows MSVC2010 OpenGL 下的 Qt 5.2.1)中获取文本。这是示例代码:

import QtQuick 2.2
import QtQuick.Window 2.1

Window {
    visible: true
    width: 160
    height: 60

    Text {
        text: qsTr("Hello\nWorld World2 World3")
        horizontalAlignment: Text.AlignRight
        anchors.centerIn: parent
    }
}

这是它在 Qt Creator 的设计器中的外观:

设计师截图

以下是在 Qt Creator 的新项目向导生成的“Qt Quick Application”下运行时的外观(仅在 .qml 文件中进行更改,如上所示):

在此处输入图像描述

我怎样才能让它在应用程序中看起来正确?

这是QTBUG-30896(感谢@Meefte 提供链接),已在 Qt 5.3 中修复。Qt 5.2.1 的任何合理解决方法(因为在这种情况下升级 Qt 版本有“外部”困难)?

4

2 回答 2

3

作为错误修复,您可以为文本元素提供固定宽度:

import QtQuick 2.2
import QtQuick.Window 2.1

Window {
    visible: true
    width: 160
    height: 60

    Text {
        width: 160
        text: qsTr("Hello\nWorld World2 World3")
        horizontalAlignment: Text.AlignRight
        anchors.centerIn: parent
    }
}
于 2015-03-11T10:41:38.457 回答
1

一些丑陋的解决方法,但至少它可以满足您的需求:)

ColumnLayout {
    anchors.centerIn: parent
    Repeater {
        id: repeater
        model: "Hello\nWorld World2 World3".split(/[\r\n]/g);
        Text {
            text: repeater.model[index]
            horizontalAlignment: Text.AlignRight
            Layout.fillWidth: true
        }
    }
}
于 2015-03-11T10:50:18.050 回答