2013-01-14 42 views
3

我需要在Cascades Qml中創建像按鈕和帶有圖像背景的列表等自定義用戶界面元素,但似乎沒有辦法設置Button等控件的背景。如何在BlackBerry 10 Cascades中創建圖像按鈕?

我找不到任何地方的任何例子。

似乎這可能是通過使用容器和創建自定義控件,但我沒有看到讓該容器有一個onClick事件的方法。

Item { 
    Image { 
    anchors.fill: parent 
    source: "yourimg.png" 
    } 
    MouseArea { 
    anchors.fill: parent 
    onClicked: { 
     console.log("do your action here!") 
    } 
    } 
} 

如果你在一個單獨的文件QML例如把這個代碼:

回答

2

您可以通過使用鼠標區域元素做到這一點CustomButton.qml。您可以在其他QML文件中使用它像一個自定義按鈕元素:

CustomButton { 
} 

你可以閱讀更多關於這個here

+0

它不看起來像定製的控件是真的支持。難道他們不希望人們做自定義控件? – Tjaart

+0

屬於Cascades一部分的控件僅允許進行有限量的自定義。例如,按鈕可以讓你添加一個圖像,如果你想。查看[Button]的文檔(https://developer.blackberry.com/cascades/reference/bb__cascades__button.html)。如果你想更多的定製,你可以創建自己的控件。我已經更新了答案,以顯示如何創建自定義控件。 – JuliusG

+1

這隻適用於QtQuick,不適用於Cascades。 – onion

3

自定義控件在BB10中實際上非常簡單。這裏是你正在嘗試做一個例子:

Container { 
    property alias text: label.text 
    property alias image: imagev.imageSource 
    ImageView { 
     id: imagev 
     imageSource: "asset:///images/Button1.png" 
    }   
    Label { 
     id: label 
     text: "demo"    
    } 

    gestureHandlers: [ 
     TapHandler { 
      onTapped: { 
       //do tapped code 
      }     
     }, 
     LongPressHandler { 
      onLongPressed: { 
       //do long press code 
      }    
     }   

    ] 
} 

另存爲「CustomButton.qml」,然後在你的主QML文件,你可以像這樣訪問:

Page { 
    CustomButton { 
     text: "my text" 
     image: "images/myimage.png" 
    } 
} 
相關問題