我在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快速应用程序”下运行时的外观(仅在.qml文件中进行更改,如上所示):
如何让它在应用程序中正确显示?
这是QTBUG-30896(感谢@Meefte的链接),已在Qt 5.3中修复。 Qt 5.2.1的任何合理的解决方法(在这种情况下升级Qt版本有“外部”困难)?
答案 0 :(得分: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
}
}
答案 1 :(得分: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
}
}
}