充当单选按钮的组框

Groupboxes behaving as radiobuttons

我知道在 GroupBox 标题中可以有单选按钮(或任何其他项目),但它们的行为没有关联。

这是我的界面图片

现在,用户可以通过单击 "Create lesion" 按钮或单击列表中的现有病变来进行确认。我想让用户选择一个groupBox或另一个,并禁用相关信息,以便有一个确认按钮。

使用 label property to add the RadioButton, and ButtonGroup's attached group 属性 使组框相互排斥:

import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3

ApplicationWindow {
    width: 640
    height: 480
    visible: true

    ButtonGroup {
        id: checkGroup
    }

    RowLayout {
        GroupBox {
            id: newLesionGroupBox
            title: "New lesion"

            label: RowLayout {
                RadioButton {
                    id: newLesionRadioButton
                    checked: true

                    ButtonGroup.group: checkGroup
                }
                Label {
                    text: newLesionGroupBox.title
                    font: newLesionGroupBox.font
                }
            }

            Column {
                enabled: newLesionRadioButton.checked

                Label {
                    text: "Some stuff"
                }
                Button {
                    text: "Blah"
                }
            }
        }
        GroupBox {
            id: existingLesionGroupBox
            title: "Existing lesion"

            label: RowLayout {
                RadioButton {
                    id: existingLesionRadioButton

                    ButtonGroup.group: checkGroup
                }
                Label {
                    text: existingLesionGroupBox.title
                    font: existingLesionGroupBox.font
                }
            }

            Column {
                enabled: existingLesionRadioButton.checked

                Label {
                    text: "Some stuff"
                }
                Button {
                    text: "Blah"
                }
            }
        }
    }
}

您可以通过从组框中制作一个可重用的组件来整理它。

顺便说一句,控件的每个可视化部分都可以自定义 link 到自定义文档。在这种情况下,它 link 在这里:

https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-groupbox