2017-06-10 7 views
1

Ich habe eine TextArea. Wenn ich Padding ständig padding normal arbeiten.QML TextArea seltsame Polsterung

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

Wenn ich Zeilen oben auskommentieren habe ich seltsames Verhalten. Was mache ich falsch?

Screenshot

Antwort

0

Es scheint ein Fehler zu sein, wahrscheinlich einige Updates fehlen, wenn die Breite des contentItem der ApplicationWindow einrichten, so dass die Leitungslängen sind nicht richtig berechnet.

Wenn Sie schreiben:

leftPadding: { 
    console.log(parent, parent.width) 
    return 100 * parent.width/640 
} 

Sie sehen können, dass die parent.width anfänglich auf 0 gesetzt und wechselt dann auf 640. Wenn diese Änderung geschieht, muss es etwas mit den Signalen schief gehen.

Bei einer Größenänderung des Fensters werden die Zeilenlängen aktualisiert, sodass das richtige Layout wiederhergestellt wird. Sie könnten versuchen, einen Fehlerbericht unter http://bugreports.qt.io zu speichern, damit er behoben wird.

Other than that, können Sie ein ID zu Ihrem ApplicationWindow und verwenden Sie diese statt geben parent

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