【QML】自定义控件

代码如下:

mian.qml

cpp 复制代码
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15  // 或其他版本
import QtQuick.Layouts 1.15
import QtQuick.Dialogs

//import QtQuick.Dialogs 1.3 // 对于 Qt 5,使用这个导入
import QtQuick.Dialogs 6.3  // 对于 Qt 6,使用:

import "./MyBtn"  //不在同一目录,要导入目录

Window {
    width: 400
    height: 300
    visible: true
    title: "MyButton 示例"

    Row{
        MyButton{
            width: 100
            height: 30
        }

        MyBtn{

        }
    }
}

MyButton.qml

cpp 复制代码
import QtQuick 2.15
import QtQuick.Controls 2.15

Button{
    id:btn
    width: 100
    height: 100
    background: Rectangle{
        width: btn.width    //方便外部修改宽度
        height: btn.height
        color: "blue"
        radius: 10
        MouseArea{
            anchors.fill: parent
            hoverEnabled: true
            onEntered: {
                parent.color = "red"
            }
            onExited: {
                parent.color = "blue"
            }
        }
    }

    onClicked: {
        console.log("点击自定义控件")
    }
}

MyBtn.qml

cpp 复制代码
import QtQuick 2.15
import QtQuick.Controls 2.15

Rectangle{
    width: 100    //方便外部修改宽度
    height: 30
    color: "blue"
    radius: 10
    MouseArea{
        anchors.fill: parent
        hoverEnabled: true
        onEntered: {
            parent.color = "red"
        }
        onExited: {
            parent.color = "blue"
        }
        onClicked: {
            console.log("点击自定义Rectangle控件")
        }
    }
}

同一级的目录一般是可以不用导入的,但是不同级目录是要使用import导入的。

相关推荐
gdizcm4 天前
QT QML嵌入Widget窗体并通信
qt·qml·widget与qml
谁刺我心5 天前
[QML]Functional功能型控件-虚拟键盘
开发语言·qml·虚拟键盘
Ulyanov5 天前
《PySide6 GUI开发指南:QML核心与实践》 第十篇:综合实战——构建完整的跨平台个人管理应用
开发语言·python·qt·ui·交互·qml·雷达电子战系统仿真
Ulyanov6 天前
《PySide6 GUI开发指南:QML核心与实践》 第八篇:性能优化大师——QML应用性能调优实战
python·qt·ui·性能优化·qml·系统仿真
Ulyanov6 天前
《PySide6 GUI开发指南:QML核心与实践》 第一篇:GUI新纪元——QML与PySide6生态系统全景
开发语言·python·qt·qml·雷达电子对抗
大橘12 天前
【qml-5.1】qml与c++交互(QML_ELEMENT/QML_SINGLETON)
开发语言·c++·qt·交互·qml
镜中月ss1 个月前
QT中的资源树
开发语言·qt·qml
习惯就好zz1 个月前
Qt Quick 系统托盘完整实践
开发语言·qt·qml·系统托盘·system tray·qapplication·qguiapplication
爱搞事的程小猿3 个月前
qml自定义扩展模块
c++·qt·qml
谁刺我心3 个月前
qml折线面积图样式
qml·折线面积图