我正在尝试实现一个在页面上垂直和水平居中的元素,具有填充边距,并且其中的元素间距相等且居中和包裹(如果需要)。所以本质上我试图实现这样的目标:
但不幸的是,当屏幕缩小时,文本不会保留填充,也不会换行。
理想情况下,我希望在两个文本段落周围都有一个单位的填充,并且在两个段落之间有一个单位的间距,并且所有段落都居中/换行。
我尝试计算和设置宽度/高度属性,但它们没有任何作用。
这是我的代码:
Tab {
objectName: "Tab2"
title: i18n.tr("Title")
page: Page {
anchors.fill: parent
Item {
anchors.centerIn: parent
Text {
id: text1
text: "orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in mollis purus"
wrapMode: Text.Wrap
width: parent.width
horizontalAlignment: Text.AlignHCenter
}
Text {
text: "Etiam sagittis fringilla quam, eget accumsan libero pulvinar ac."
wrapMode: Text.Wrap
width: parent.width
anchors {
top: text1.bottom
topMargin: units.gu(2)
}
horizontalAlignment: Text.AlignHCenter
}
}
}
}
答案1
您的项目没有定义宽度和高度,因此它会占用子项的高度并且包装会中断。
此代码可能可以实现您想要的功能,但也许您需要调整一些边距:
import QtQuick 2.0
import Ubuntu.Components 0.1
MainView {
width: 800
height: 600
Tabs {
Tab {
objectName: "Tab2"
title: i18n.tr("Title")
page: Page {
Item {
anchors.fill: parent
Text {
anchors {
left: parent.left
right: parent.right
verticalCenter: parent.verticalCenter
}
id: text1
text: "orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in mollis purus\n\n" +
"Etiam sagittis fringilla quam, eget accumsan libero pulvinar ac."
wrapMode: Text.Wrap
horizontalAlignment:Text.AlignHCenter
}
}
}
}
}
}
如果要将两个文本项分开,也可以使用列:
import QtQuick 2.0
import Ubuntu.Components 0.1
MainView {
width: 800
height: 600
Tabs {
Tab {
objectName: "Tab2"
title: i18n.tr("Title")
page: Page {
Column {
spacing: units.gu(2)
anchors {
left: parent.left
right: parent.right
verticalCenter: parent.verticalCenter
}
Text {
anchors {
left: parent.left
right: parent.right
}
id: text1
text: "orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in mollis purus"
wrapMode: Text.Wrap
horizontalAlignment:Text.AlignHCenter
}
Text {
anchors {
left: parent.left
right: parent.right
}
id: text2
text: "Etiam sagittis fringilla quam, eget accumsan libero pulvinar ac."
wrapMode: Text.Wrap
horizontalAlignment:Text.AlignHCenter
}
}
}
}
}
}