رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران
  • 0
قاسم رمضانی منش

استفاده از پیاده‌سازیِ ButtonGroup در کامپوننت‌ها


سوال

درود و خسته‌نباشید به دوستان؛

می‌خواهم حالتی را مانند RadioButton که فقط می‌توان «یکی‌ از چندتا» را انتخاب کرد را در دکمه‌هایی که خودم نوشته‌ام پیاده کنم، در حالت عادی به این‌صورت عمل کرده‌ام و خب مشخصاً راه‌حل خوبی نیست استفاده از تابع ()fundOutAndTurnOnButtonLight؛ به چه روشی می‌توان بهتر عمل کرد ؟

main.qml

ApplicationWindow {
    id: root; visible: true
    width: 640; height: 480
    color: "gray"

    function findOutAndTurnOnButtonLight(id){
        switch(id){
        case pageOne:
            pageTwo.isSelected   = false
            pageThree.isSelected = false
            break
        case pageTwo:
            pageOne.isSelected   = false
            pageThree.isSelected = false
            break
        case pageThree:
            pageOne.isSelected   = false
            pageTwo.isSelected   = false
            break
        }
        id.isSelected = true
    }

    Row{
        id: kepper
        anchors.centerIn: parent
        spacing: 20
        MyRec{
            id: pageOne
            onButtonClicked: findOutAndTurnOnButtonLight(pageOne)
        }
        MyRec{
            id: pageTwo
            onButtonClicked: findOutAndTurnOnButtonLight(pageTwo)
        }
        MyRec{
            id: pageThree
            onButtonClicked: findOutAndTurnOnButtonLight(pageThree)
        }
    }
}

و کامپوننت MyRec که در فایل MyRec.qml می‌باشد :

Item {
    id: root
    width: 100; height: 100
    property bool isSelected : false
    signal buttonClicked()

    Rectangle{
        id: myButton
        anchors.fill: parent
        color: "red"
        width: parent.width / 4
        height: parent.height / 4
    }

    Rectangle{
        id: bar
        anchors{
            bottom: myButton.bottom
            horizontalCenter: myButton.horizontalCenter
        }
        color: "blue"
        width: myButton.width / 2
        height: 5
        visible: isSelected
    }

    MouseArea{
        id: clickableArea
        anchors.fill: myButton
        onClicked: buttonClicked()
    }

    states:[
        State{
            name: "entered"
            when: clickableArea.pressed
            PropertyChanges{
                target: myButton
                color: "yellow"
            }
        }
    ]
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

0 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

هنوز برای این سوال پاسخی ارسال نشده است

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...