returnx
دوشنبه 21 اسفند 1391, 18:50 عصر
من دارم برای نمونه یک دکمه با QML می سازم و می خوام در صورتی که خاصیت Use_gradient برابر true بود به دکمه Gradient بدم در غیر اینصورت از همان Color معمولی استفاده کنم، با کلی کلنجار رفتن ، تونستم با کد زیر جواب بگیرم ، اما باید راه بهتری باشه ، زیاد هم جستجو کردم اما به نتیجه ی خاصی نرسیدم :
Rectangle {
property variant text
property bool use_gradient: true
property color backcolor: "lightgray"
property color gradient_start_color: "lightgray"
property color gradient_end_color: "white"
property variant temp_gradient: Gradient{
GradientStop {position: 0.0; color:gradient_start_color}
GradientStop {position: 1.0; color: gradient_end_color}
}
id:container
width: button_txt.width + 20
height: button_txt.height + 10
text:qsTr("Button")
border.width: 1
radius: 4
smooth: true
color: if (use_gradient == false){backcolor}
gradient: if (use_gradient == true ) {temp_gradient}
//Set Button Caption:
Text {
id: button_txt
text: qsTr(parent.text)
anchors.centerIn: parent
}راه بهتری هم هست !؟البته اگر از عملگر ؟ استفاده نشه بهتره...
Rectangle {
property variant text
property bool use_gradient: true
property color backcolor: "lightgray"
property color gradient_start_color: "lightgray"
property color gradient_end_color: "white"
property variant temp_gradient: Gradient{
GradientStop {position: 0.0; color:gradient_start_color}
GradientStop {position: 1.0; color: gradient_end_color}
}
id:container
width: button_txt.width + 20
height: button_txt.height + 10
text:qsTr("Button")
border.width: 1
radius: 4
smooth: true
color: if (use_gradient == false){backcolor}
gradient: if (use_gradient == true ) {temp_gradient}
//Set Button Caption:
Text {
id: button_txt
text: qsTr(parent.text)
anchors.centerIn: parent
}راه بهتری هم هست !؟البته اگر از عملگر ؟ استفاده نشه بهتره...