----- 抽象基类 -----


 AbstractButton 
 是一个抽象基类,不能实例化。它为所有按钮类型提供基础功能和属性 
 作用: 为派生的具体按钮提供统一接口和基础功能
导入、继承
/*----------导入语句----------*/
import QtQuick.Controls
 
/*----------继承----------*/
Control
 
//继承成员
Button,       CheckBox,    DelayButton,
ItemDelegate, MenuBarItem, MenuItem,
RadioButton,  Switch,      TabButton


属性:值
/*----------属性:值----------*/
action: Action
  //用于保存按钮动作
autoExclusive: bool
  //该属性显示是否启用了自动排他性。
  //如果启用,同一ButtonGroup,任何时候只能选中一个按钮;选中另一个按钮会自动取消选中之前选中的按钮。
  //注: 该属性对属于ButtonGroup 的按钮不起作用。
  //RadioButton 和 TabButton 默认自动排他性。
autoRepeat: bool
  //用于保存按钮在按住时是否重复发送pressed(),released() 和clicked() 信号
  //为true ,则不会发出pressAndHold() 信号
  //初始延迟和重复间隔由autoRepeatDelay 和autoRepeatInterval 定义,单位为毫秒。
  //默认值为 false
autoRepeatDelay: int
  //以毫秒为单位保存自动重复的初始延迟。默认值为300 ms
autoRepeatInterval: int
  //以毫秒为单位保存自动重复的时间间隔。默认值为100 ms
checkable: bool
  //按钮是否可选中,默认值为false 
display: enumeration
  //决定icon 和text 在按钮中的显示方式
    AbstractButton.IconOnly  //仅显示图标
    AbstractButton.TextOnly  //仅显示文本
    AbstractButton.TextBesideIcon  //文字在图标右方(默认)
    AbstractButton.TextUnderIcon  //文字在图标下方
down: bool
  //保持按钮是否可视化向下
  //除非明确设置,否则该属性将沿用pressed 的值。要返回默认值,请将该属性设置为undefined
icon
  //图标相关
    icon.name: string  //图标名称,从平台主题加载,找不到图标,则使用icon.source 代替
    icon.width: int  //图标的宽度永远不会超过此值,但必要时会缩小
    icon.height: int  //图标的高度永远不会超过此值,但必要时会缩小
    icon.color: color  //除非颜色设置为"transparent" ,否则图标将使用指定颜色
    icon.source: url  //图标名称,作为普通图片加载,若icon.name 已设置一个有效的主题图标,则此项失效
    icon.cache: bool  //用于指定是否缓存图标,默认值为 true
implicitIndicatorHeight: real
  //该属性保存隐式指示符高度,real:浮点数
  //通常与implicitContentHeight 和implicitBackgroundHeight 一起用于计算implicitHeight 
implicitIndicatorWidth: real
  //该属性保存隐式指示器宽度,real:浮点数
  //通常与implicitContentWidth 和implicitBackgroundWidth 一起用于计算implicitWidth
indicator: Item
  //该属性包含指标项
pressX: real
  //该属性保存最后一次按下的 x 坐标
  //注意: 该值在触摸移动时更新,但在触摸释放后保持不变
pressY: real
  //该属性保存最后一次按下时的 y 坐标
  //注意: 该值在触摸移动时更新,但在触摸释放后保持不变
pressed: bool
  //表示按钮是否被按下,按钮可通过触摸或按键事件按下
text: string
  //包含按钮的文字描述


信号
/*----------信号----------*/
canceled()
  //当按钮在按下时失去鼠标抓取功能,或本应发出released 信号但鼠标光标不在按钮内时,就会发出该信号
  //注: 相应的处理程序是onCanceled 
clicked()
  //点击按钮时,将发出该信号
  //注: 相应的处理程序是onClicked
doubleClicked()
  //双击按钮时,会发出该信号
  //注: 相应的处理程序是onDoubleClicked
pressAndHold()
  //按住按钮时,会发出该信号。启用autoRepeat 时不会发出该信号。
  //注: 相应的处理程序是onPressAndHold
pressed()
  //按下按钮时,将发出该信号
  //注: 相应的处理程序是onPressed
released()
  //释放按钮时,将发出该信号
  //注: 相应的处理程序是onReleased 
toggled()
  //切换可复选按钮时,将发出该信号
  //注: 相应的处理程序是onToggled



----- 具体实现 -----


 Button 
/*----------导入语句----------*/
import QtQuick.Controls
 
/*----------继承----------*/
AbstractButton
 
//继承成员
RoundButton, ToolButton
 
/*----------属性:值----------*/
flat: bool
  //按钮是否为平面按钮,除非按下或选中,否则平面按钮通常不会绘制背景
  //默认值为false
highlighted: bool
  //显示按钮是否高亮显示,默认值为false
 
/*----------连接按钮信号示例----------*/
RowLayout {
    Button {
        text: "Ok"
        onClicked: model.submit()
    }
    Button {
        text: "Cancel"
        onClicked: model.revert()
    }
}


 ButtonGroup 
/*----------导入语句----------*/
import QtQuick.Controls
 
/*----------继承----------*/
QtObject
 
/*----------属性:值----------*/
flat: bool
  //按钮是否为平面按钮,除非按下或选中,否则平面按钮通常不会绘制背景
  //默认值为false
highlighted: bool
  //显示按钮是否高亮显示,默认值为false
 
/*----------连接按钮信号示例----------*/
RowLayout {
    Button {
        text: "Ok"
        onClicked: model.submit()
    }
    Button {
        text: "Cancel"
        onClicked: model.revert()
    }
}


----- 自定义控件 -----


 如何自定义控件 
启用/禁用