自定义控件的封装能够大幅减少在main中的代码量,但QT5和QT6中的封装方法略微不同。
QT5中QML的新建项目一般创建完是:
untitled/
├── untitled.pro
├── 源文件
│ └──main.cpp
├── 资源
│ └── qml.qrc
│ └──/
│ └──main.qml
我们只需在 / 文件夹下(和main.qml同目录)新建一个CustomButton.qml文件,就能够在main.qml中直接使用我们新建文件的文件名(CustomButton),来直接调用自定义控件。
而在QT6中QML的新建格式却不太一样,一般是:
untitled/
├── untitled.pro
├── 源文件
│ └──main.cpp
├── QML
│ └── main.qml
那么直接在同目录下新建文件就不起效了,但方法也很简单。
参考在资源中引用图片的例子,我们在根目录新增一个Qt Resource File,起个文件名(例:Custom),添加前缀(例:CustomButton),然后右击Custom.qrc添加新文件,选择QML File,起文件名(例:CustomButton1),在CustomButton1中编写自定义控件代码,最后在main.qml中import "qrc:/CustomButton",既可在main中直接调用,下面给出项目构成和main.qml的代码:
untitled/
├── untitled.pro
├── 源文件
│ └──main.cpp
├── 资源
│ └──Custom.qrc
│ └──/CustomButton
│ └──CustomButton1.qml
├── QML
│ └── main.qml
import QtQuick
import "qrc:/CustomButton" //qrc即添加的Custom.qrc
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
CustomButton1{
}
}