HusButtonBlock 按钮块(HusIconButton变种)

March 30, 2026 · View on GitHub

← 返回主目录

← 返回本类别目录

HusButtonBlock 按钮块(HusIconButton变种)

用于将多个按钮组织成块,类似 HusRadioBlock

  • 模块 { HuskarUI.Basic }

  • 继承自 { Control }


支持的代理:

  • toolTipDelegate: Component 文字提示代理,代理可访问属性:

    • pressed: int 是否按下

    • hovered: int 是否悬浮

    • toolTip: var 文字提示数据

  • buttonDelegate: Component 按钮项代理,代理可访问属性:

    • index: int 按钮项索引

    • modelData: var 按钮项数据


支持的属性:

属性名类型默认值描述
animationEnabledboolHusTheme.animationEnabled是否开启动画
effectEnabledbooltrue是否开启点击效果
hoverCursorShapeintQt.PointingHandCursor悬浮时鼠标形状(来自 Qt.*Cursor)
modelarray[]按钮块模型
countint-按钮数量
sizeenumHusButtonBlock.Size_Auto按钮项大小(来自 HusButtonBlock)
buttonWidthint120按钮项宽度(size == HusButtonBlock.Size_Fixed 生效)
buttonHeightint30按钮项高度(size == HusButtonBlock.Size_Fixed 生效)
buttonLeftPaddingint10按钮项左填充
buttonRightPaddingint10按钮项右填充
buttonTopPaddingint8按钮项上填充
buttonBottomPaddingint8按钮项下填充
radiusBgHusRadius-按钮项背景半径
contentDescriptionstring''内容描述(提高可用性)

模型支持的属性:

属性名类型可选/必选描述
labelstring必选本按钮的标签
valuesting可选本按钮的值
enabledbool可选本按钮是否启用
iconSourceint丨string可选本按钮图标(参见 HusIcon)或图标链接
typeenum可选本按钮类型(参见 HusButton.type)
autoRepeatbool可选本按钮是否自动重复(参见 Button.autoRepeat)
toolTipvar可选存在时则创建文字提示
toolTip.textstring可选存在时则创建文字提示
toolTip.delayint可选文字提示延时(ms)
toolTip.timeoutint可选文字提示超时(ms)

支持的信号:

  • pressed(index: int, buttonData: var) 按下按钮时发出

    • index 按钮索引

    • buttonData 按钮项数据

  • released(index: int, buttonData: var) 释放按钮时发出

    • index 按钮索引

    • buttonData 按钮项数据

  • clicked(index: int, buttonData: var) 点击按钮时发出

    • index 按钮索引

    • buttonData 按钮项数据

  • doubleClicked(index: int, buttonData: var) 双击按钮时发出

    • index 按钮索引

    • buttonData 按钮项数据


代码演示

示例 1

通过 model 属性设置初始按钮块的模型,按钮项支持的属性:

  • { label: 本按钮的标签 }

  • { value: 本按钮的值 }

  • { enabled: 本按钮是否启用 }

  • { iconSource: 本按钮图标源 }

  • { type: 本按钮类型(参见 HusButton.type) }

  • { autoRepeat: 本按钮是否自动重复(参见Button.autoRepeat) }

import QtQuick
import HuskarUI.Basic

Column {
    spacing: 10

    HusButtonBlock {
        model: [
            { label: 'Apple', value: 'Apple' },
            { label: 'Pear', value: 'Pear' },
            { label: 'Orange', value: 'Orange' },
        ]
    }

    HusButtonBlock {
        model: [
            { label: 'Default', type: HusButton.Type_Default },
            { label: 'Outlined', type: HusButton.Type_Outlined },
            { label: 'Primary', type: HusButton.Type_Primary },
            { label: 'Filled', type: HusButton.Type_Filled },
            { label: 'Text', type: HusButton.Type_Text },
        ]
    }

    HusButtonBlock {
        model: [
            { label: 'Apple', value: 'Apple' },
            { label: 'Pear', value: 'Pear', enabled: false },
            { label: 'Orange', value: 'Orange' },
        ]
    }

    HusButtonBlock {
        enabled: false
        model: [
            { label: 'Apple', value: 'Apple' },
            { label: 'Pear', value: 'Pear', enabled: false },
            { label: 'Orange', value: 'Orange' },
        ]
    }

    HusButtonBlock {
        model: [
            { iconSource: HusIcon.PlusOutlined },
            { iconSource: HusIcon.MinusOutlined },
            { iconSource: HusIcon.CloseOutlined },
            { label: ' / ' },
        ]
    }
}

示例 2

通过 size 属性设置按钮块调整大小的模式,支持的大小:

  • 自动计算大小(默认) { HusButtonBlock.Size_Auto }

  • 固定大小(将使用buttonWidth/buttonHeight) { HusButtonBlock.Size_Fixed }

import QtQuick
import HuskarUI.Basic

Column {
    spacing: 10

    HusButtonBlock {
        size: HusButtonBlock.Size_Auto
        model: [
            { label: 'Apple', value: 'Apple' },
            { label: 'Pear', value: 'Pear' },
            { label: 'Orange', value: 'Orange' },
        ]
    }

    HusButtonBlock {
        size: HusButtonBlock.Size_Fixed
        model: [
            { label: 'Apple', value: 'Apple' },
            { label: 'Pear', value: 'Pear' },
            { label: 'Orange', value: 'Orange' },
        ]
    }
}