QML基础控件(一)

目录

1.Rectangle

2.Label

3.Button

4.CheckBox

5.RadioButton

6.ComboBox


1.Rectangle

Rectangle是一个用于创建矩形的基本元素。

属性:

  • width和height:用于指定矩形的宽度和高度。
  • x和y:用于指定矩形在父容器中的位置。
  • color:用于设置矩形的填充颜色。
  • border.color和border.width:用于设置矩形边框的颜色和宽度。
  • radius:用于设置矩形的圆角半径。
  • gradient:用于设置矩形的渐变填充效果。
  • opacity:用于设置矩形的透明度。
  • scale和rotation:用于设置矩形的缩放倍数和旋转角度。
  • antialiasing:用于设置是否抗锯齿。

功能:

  • 创建矩形:Rectangle用于在QML界面中创建矩形区域。
  • 布局管理:Rectangle可以作为布局容器的子元素,参与各种布局管理,如水平布局、垂直布局等。
  • 交互和效果:Rectangle支持鼠标事件,如单击、双击、鼠标移动等,可以通过信号处理器来响应这些事件。同时,也可以使用QML的动画系统对Rectangle的属性进行动画处理,实现动态效果,如淡入淡出、移动、缩放等。
  • 继承和扩展:Rectangle继承自Item,因此它继承了Item的所有属性和方法,同时也可以在其基础上进行扩展。例如,可以通过添加自定义属性和方法来扩展Rectangle的功能,以满足特定的需求。

示例:

Rectangle {
    width: 200
    height: 200
    anchors.centerIn: parent
    color: "blue"

    border.color: "black"
    border.width: 3

    radius: 15
    //radius: width/2  //圆形

    gradient: Gradient {
        orientation: Gradient.Horizontal
        GradientStop { position: 0.0; color: "aliceblue" }
        GradientStop { position: 0.33; color: "skyblue" }
        GradientStop { position: 1.0; color: "blue" }
    }

    MouseArea {
        anchors.fill: parent
        onClicked: console.log("mouse clicked");
    }
}

  

2.Label

Label是一个用于显示文本的控件。

属性:

  • background:用于设置Label的背景项目。如果背景项没有明确指定大小,它会自动遵循控件的大小。
  • bottomInsetleftInset:用于设置Label的底部和左侧的内边距。
  • text:用于设置Label显示的文本内容。
  • color:用于设置Label的文本颜色。
  • font:用于设置Label的字体。
  • style:用于设置Label的文本样式。
  • wrapMode:用于设置Label的文本换行模式。

功能:

  • 显示文本:Label用于在QML界面中显示文本信息。
  • 支持HTML格式:Label的text属性支持HTML格式的字符串解析,例如可以使用<b><i>等标签来设置文本的加粗、斜体等样式。
  • 可作为其他控件的子元素:Label可以作为其他QML控件的子元素,参与布局和交互。
  • 支持信号和槽机制:Label可以通过信号和槽机制与其他QML对象进行交互,例如可以在Label的信号处理器中响应鼠标点击、文本变化等事件。

示例:

import QtQuick
import QtQuick.Controls

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Item {
        anchors.fill: parent

        Label {
            anchors.centerIn: parent
            text: "Hello World!"
            font.pixelSize: 20
            font.italic: true
            font.bold: true
            color: "black"
        }
    }
}

  

3.Button

Button是一个用于创建按钮的基本元素。

属性:

  • text:用于设置按钮上显示的文本内容。
  • width和height:用于指定按钮的宽度和高度。
  • x和y:用于指定按钮在父容器中的位置。
  • color:用于设置按钮的前景颜色,即文本颜色。
  • background:用于设置按钮的背景,可以是一个Rectangle或其他可视化元素。
  • enabled:用于设置按钮是否可用,默认为true。
  • flat:用于设置按钮是否为扁平样式,默认为false。
  • highlighted:用于设置按钮是否突出显示,默认为false。
  • font.pointSize:用于设置按钮上文本的字体大小。

功能:

  • 创建按钮:Button用于在QML界面中创建按钮,用户可以通过点击按钮来执行相应的操作。
  • 响应点击事件:Button提供了clicked信号,当按钮被点击时会发出该信号,可以通过连接到这个信号来执行按钮的动作。
  • 支持多种交互方式:Button支持鼠标事件,如单击、双击、鼠标移动等,还可以通过设置hoverEnabled属性来支持鼠标悬停效果。
  • 自定义样式:Button的背景和文本样式可以通过设置相应的属性进行自定义,也可以通过继承Button来创建自定义的按钮样式。
  • 与其他控件结合使用:Button可以与其他QML控件结合使用,如与Text、Rectangle等组合实现更复杂的界面布局和交互效果。

示例:

import QtQuick
import QtQuick.Controls.Basic

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Button {
        id: button
        anchors.centerIn: parent
        text: "clicked"
        implicitWidth: 80
        implicitHeight: 50

        onClicked: console.log("clicked")
        background: Rectangle {
            color: button.down ? "blue" : "aliceblue"
            radius: 20
        }
    }
}

  

4.CheckBox

CheckBox是一个用于创建复选框的基本元素。

属性:

  • checked:用于设置或获取复选框的选中状态,是一个布尔值,默认为false。
  • tristate:用于设置复选框是否为三态复选框,默认为false。如果设置为true,复选框将有三种状态:未选中、部分选中和完全选中。
  • text:用于设置复选框旁边显示的文本内容。
  • width和height:用于指定复选框的宽度和高度。
  • x和y:用于指定复选框在父容器中的位置。
  • color:用于设置复选框的前景颜色,即文本颜色。
  • background:用于设置复选框的背景,可以是一个Rectangle或其他可视化元素。
  • enabled:用于设置复选框是否可用,默认为true。
  • font.pointSize:用于设置复选框上文本的字体大小。

示例:

Column {
    ButtonGroup {
        id: group
        exclusive: false
        checkState: parentBox.checkState
    }

    CheckBox {
        id: parentBox
        text:"all"
        checkState: group.checkState
    }

    CheckBox {
        text: "child_1"
        leftPadding: indicator.width
        ButtonGroup.group: group
    }

    CheckBox {
        text: "child_2"
        leftPadding: indicator.width
        ButtonGroup.group: group
    }
}

   

5.RadioButton

RadioButton是一个用于创建单选按钮的基本元素。

属性:

  • checked:用于设置或获取单选按钮的选中状态,是一个布尔值,默认为false。
  • text:用于设置单选按钮旁边显示的文本内容。
  • width和height:用于指定单选按钮的宽度和高度。
  • x和y:用于指定单选按钮在父容器中的位置。
  • color:用于设置单选按钮的前景颜色,即文本颜色。
  • background:用于设置单选按钮的背景,可以是一个Rectangle或其他可视化元素。
  • enabled:用于设置单选按钮是否可用,默认为true。
  • font.pointSize:用于设置单选按钮上文本的字体大小。

示例:

Column {
    RadioButton {
        checked: true
        text: "Btn_1"
    }

    RadioButton {
        text: "Btn_2"
    }

    RadioButton {
        text: "Btn_3"
    }
}

    

6.ComboBox

ComboBox是一种用于显示下拉列表的控件。

属性:

  • count:类型为整数,表示ComboBox中选项的数量。
  • currentIndex:整数类型,确定当前选中选项的索引。
  • currentText:字符串类型,代表当前选中选项的文本内容。
  • currentValue:类型为var,用于存储当前选中项的相关值。
  • delegate:组件类型,可能用于定制ComboBox中每个选项的显示样式等。
  • displayText:字符串类型,用于显示的文本内容。
  • down:表示ComboBox是否处于下拉展开状态。
  • editText:在可编辑ComboBox中与用户输入的文本相关。
  • editable:确定ComboBox是否可编辑。
  • model:用于定义ComboBox的选项数据来源。
  • popup:与ComboBox的弹出部分(如下拉菜单部分)相关。

信号:

  • accepted() :当输入被接受(例如可编辑ComboBox输入完成且输入合法)时发出。
  • activated(int index):当某个选项被激活(如选中)时发出,同时传递被激活选项的索引。
  • highlighted(int index):当某个选项被高亮显示(如鼠标悬停)时发出,传递被高亮显示选项的索引。

示例:

ComboBox {
    id: comboBox
    anchors.centerIn: parent
    model: ["Apple", "Banana", "Cherry"]
    currentIndex: 0
    onActivated: console.log("Selected: ",model[currentIndex])
}


ComboBox {
    anchors.horizontalCenter: parent.horizontalCenter
    anchors.top: parent.top
    model: ListModel {
        id: fruitModel
        ListElement { name: "Apple" }
        ListElement { name: "Banana" }
        ListElement { name: "Cherry" }
    }
    editable: true
    onAccepted: {
        if(find(editText) === -1)
            fruitModel.append({name: editText})
    }
}

在编辑上面的comboBox时,如果输入没有的选项时会自动添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值