2012-11-06 35 views
15

我只想知道我們是否有像C++中那樣的任何概念訪問說明符,如QML中的私有屬性。QML是否支持像Private一樣的訪問說明符?

如果不是,如果想知道如果我在我的QML組件中有大約10個屬性,但我必須將訪問權限制爲只有2個屬性。我們如何才能實現這種情況。

回答

24

有一個在QML本身沒有這樣的內置功能,但這裏是Qt Quick的組件的方法:「內部」對象的

Item { 
    property int sum: internal.a + internal.b 
    QtObject { 
    id: internal 
    property int a: 1 
    property int b: 2 
    } 
} 

屬性是項目的外部看不到,但是可以在它的內部自由使用。

+0

是否必須擁有'QtObject'或者也可以通過這種方法在ListView中聲明私有屬性? – KernelPanic

+1

你可以使用任何你想要的元素而不是QtObject。 –

+0

來自文檔:「如果需要一個非常輕量級的類型來封裝一組定製屬性,那麼創建一個QtObject會很有用」 - 所以在這裏使用QtObject是最好的解決方法。 – FourtyTwo