Qt QML文本区域奇怪填充
我有一个文本区。如果我经常设置填充,填充工作正常Qt QML文本区域奇怪填充,qt,qml,qtquick2,Qt,Qml,Qtquick2,我有一个文本区。如果我经常设置填充,填充工作正常 import QtQuick 2.9 import QtQuick.Controls 2.2 ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("Hello World") TextArea{ font.pixelSize: 20 anchors.fill: parent
import QtQuick 2.9
import QtQuick.Controls 2.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
TextArea{
font.pixelSize: 20
anchors.fill: parent
wrapMode: TextArea.Wrap
leftPadding: 100 //*parent.width/640
rightPadding: 100 //*parent.width/640
}
}
如果我取消注释上面的行,那么我有奇怪的行为。
我做错了什么
截图
在设置
应用程序窗口的contentItem
宽度时,这似乎是一个错误,可能缺少一些更新,因此未正确计算行长度
如果你写:
leftPadding: {
console.log(parent, parent.width)
return 100 * parent.width/640
}
您可以看到,parent.width
最初设置为0,然后更改为640。当这种变化发生时,信号一定出了问题
调整窗口大小将更新线条长度,从而恢复正确的布局。您可以尝试在上提交错误报告以进行修复
除此之外,您可以向您的应用程序窗口提供ID
,并使用该ID而不是父窗口
import QtQuick 2.7
import QtQuick.Controls 2.0
ApplicationWindow {
id: win
visible: true
width: 640
height: 480
title: qsTr("Hello World")
TextArea{
font.pixelSize: 20
anchors.fill: parent
wrapMode: TextArea.Wrap
leftPadding: 100 * win.width/640
rightPadding: 100 * win.width/640
}
}
在设置ApplicationWindow
的contentItem
宽度时,这似乎是一个错误,可能缺少一些更新,因此未正确计算行长
如果你写:
leftPadding: {
console.log(parent, parent.width)
return 100 * parent.width/640
}
您可以看到,parent.width
最初设置为0,然后更改为640。当这种变化发生时,信号一定出了问题
调整窗口大小将更新线条长度,从而恢复正确的布局。您可以尝试在上提交错误报告以进行修复
除此之外,您可以向您的应用程序窗口提供ID
,并使用该ID而不是父窗口
import QtQuick 2.7
import QtQuick.Controls 2.0
ApplicationWindow {
id: win
visible: true
width: 640
height: 480
title: qsTr("Hello World")
TextArea{
font.pixelSize: 20
anchors.fill: parent
wrapMode: TextArea.Wrap
leftPadding: 100 * win.width/640
rightPadding: 100 * win.width/640
}
}