2012-11-19 31 views
5

में रेडियोबटन मेरे पृष्ठ में 3 रेडियो बटन हैं (क्यूएमएल डेस्कटॉप एप्लिकेशन), एक बार जब मैंने एक चेक किया तो मैं चाहता हूं कि अन्य सभी अनचेक किए जाएं। मैं कोड के साथ CheckableGroup उपयोग करने की कोशिश मैं मददक्यूएमएल डेस्कटॉप

CheckableGroup { id: group } 
Row { 
id: row 
spacing: platformStyle.paddingMedium 
RadioButton { 
    id: button1 
    text: "1" 
    platformExclusiveGroup: group 
} 
RadioButton { 
    id: button2 
    text: "2" 
    platformExclusiveGroup: group 
} 
RadioButton { 
    id: button3 
    text: "3" 
    platformExclusiveGroup: group 
    checked: true 
} 
} 

लेकिन मैं एक त्रुटि हो रही है में पाया मैं

RadioButton{ 
    id:rbtnDecimal1; 
    width: 130; 
    onClicked:{ 
    if(checked){ 
     rbtnHexadecimal1.checked=false; 
     rbtnString1.checked=false; 
    } 
    } 
    text: "Decimal Data"; 
    anchors.left:rbtnHexadecimal1.right 
} 

एक और समाधान की कोशिश की "platformExclusiveGroup एक वैध संपत्ति नाम नहीं है" कि जब एक बटन चेक किया जाता है तो बाकी सभी अनचेक होते हैं, लेकिन अन्य बटन तब तक चेक किए जाते हैं जब तक कि मैं उन पर माउस नहीं ले जाता - वे वे अनचेक हो जाते हैं।

कोई विचार यह कैसे कार्यान्वित किया जाए?

उत्तर

1

RadioButton QML में डेस्कटॉप अवयव अपना पहला दृष्टिकोण का समर्थन नहीं करता, लेकिन आप इस समाधान के बजाय की कोशिश कर सकते:

property int currentIndex: 1 

onCurrentIndexChanged: { 
    button1.checked = currentIndex == 0 
    button2.checked = currentIndex == 1 
    button3.checked = currentIndex == 2 
} 

Row { 
    RadioButton { 
     id: button1 
     text: "1" 
     onClicked:{ 
      currentIndex = 0 
     } 
    } 
    RadioButton { 
     id: button2 
     text: "2" 
     onClicked:{ 
      currentIndex = 1 
     } 
    } 
    RadioButton { 
     id: button3 
     text: "3" 
     onClicked:{ 
      currentIndex = 2 
     } 
    } 
} 
+0

आपका जवाब, JuliusG के लिए धन्यवाद, लेकिन मैं इसे करने की कोशिश की, और फिर से - भले ही बटन अनियंत्रित हो जाते हैं, मैं नहीं देख सकते हैं कि जब तक मैं उन पर माउस ले जाते हैं, और मैं लग रहे करने के लिए अनियंत्रित बटन चाहते हैं जब वे अनचेक हो जाते हैं तो तुरंत अनचेक की तरह। क्या आपको इस समाधान को पूरा करने का कोई विचार है? आगे धन्यवाद! – user1835297

+0

मैंने कोड तय कर लिया है और यह अब काम करता है। जब आप एक ही बटन दबाते हैं तो गार्ड को सेट करके इसे अभी भी बेहतर किया जा सकता है लेकिन उम्मीद है कि आपको एक विचार देना चाहिए। – JuliusG

+0

फिर से धन्यवाद, यह अब अच्छी तरह से काम करता है, जैसा कि मैंने चाहता था चेक और अनचेक वास्तव में बदल गया, लेकिन --- मैं इसे तब तक नहीं देख सकता जब तक कि मैं उन पर माउस नहीं ले जाता !!! मुझे क्या करना चाहिए??? – user1835297

2

आप RadioButton रों के लिए एक ExclusiveGroup निर्दिष्ट करने के लिए की जरूरत है।

Row { 
    id: row 
    ExclusiveGroup { id: group } 
    RadioButton { 
     id: button1 
     text: "1" 
     exclusiveGroup: group 
    } 
    RadioButton { 
     id: button2 
     text: "2" 
     exclusiveGroup: group 
    } 
    RadioButton { 
     id: button3 
     text: "3" 
     exclusiveGroup: group 
     checked: true 
    } 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^