2016-04-01 30 views
2

Text öğesinin gerçek genişlik & yüksekliğini almak istiyorum. paintedWidth & paintedHeight özelliklerini kullanırsam, anlayamıyorum. Örneğin: Ben bu kodu çalıştırırsanızBir Metin öğesinin gerçek genişliğini ve yüksekliğini alabilir miyim?

Rectangle { 
    color: "green" 
    width: a_text.paintedWidth 
    height: a_text.paintedHeight 

    Text { 
     id:  a_text 
     text: "r" 
     color: "white" 
     anchors.centerIn: parent 
    } 
} 

, ben "r" üstünde ve "r" altında "r" solunda bazı yeşil alan görüyoruz. Bu yüzden Text'un gerçek genişliği & yüksekliğini alamıyorum. Yani, beyaz piksellerin genişliği &.

Bunu yapmanın herhangi bir yolu var mı?

P.S. Ayrıca metnin gerçek sol üst köşesinin göreceli konumuna ihtiyacım var, yani Text'un "resmi" sol üst pikseline göre üst soldaki beyaz pikselin x & y.

+0

sevindim senin meselelerin – BaCaRoZzo

cevap

3

çözüm yeni TextMetrics elemanı kullanmaktır ve bunun tightBoundingRect özelliğini, ön plan metnin gerçek width & heigth almak için (QtQuick 2.5 gerektirir): Eğer çözdük

import QtQuick 2.5  // required! 

Rectangle { 
    color: "green" 
    width: t_metrics.tightBoundingRect.width 
    height: t_metrics.tightBoundingRect.height 

    Text { 
     id:  a_text 
     text: "r" 
     color: "white" 
     anchors.centerIn: parent 
    } 

    TextMetrics { 
     id:  t_metrics 
     font: a_text.font 
     text: a_text.text 
    } 
} 
İlgili konular