Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML文本区域奇怪填充_Qt_Qml_Qtquick2 - Fatal编程技术网

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
    }
}