2017-06-10 276 views
1

我有一個TextArea。如果我設置填充不斷填充正常工作。QML TextArea奇怪的填充

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

如果我取消註釋上面的行,那麼我有奇怪的行爲。 我在做什麼錯?

截圖

回答

0

這似乎是一個錯誤,可能是一些更新的缺失,建立ApplicationWindowcontentItem的寬度時,太行長度計算不正確。

如果你寫:

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

可以看到,該parent.width最初設置爲0,當這種變化發生然後改到640,一定有什麼用信號腳麻。

調整窗口大小將更新行長度,以便恢復正確的佈局。您可以嘗試在http://bugreports.qt.io上提交bugreport以修復它。

除此之外,你可以給一個IDApplicationWindow和使用,而不是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 
    } 
}