YourProject/ ├── Main.qml // 主页面 ├── Config.qml // 全局单例配置核心 ├── PageA.qml // 子页面A ├── PageB.qml // 子页面B └── qmldir // 注册单例必须1、核心Config.qml单例配置对象使用 QtObject 存放所有全局基础属性注册为单例整个项目只有一份实例。import QtQuick 2.14 pragma Singleton //声明为单例对象 QtObject { // 全局基础配置所有页面共享 // 主题颜色 property color primaryColor: #2D8CF0 // 主色 property color warningColor: #FF7D00 // 警告色 property color bgColor: #F5F7FA // 背景色 // 字体配置 property int fontSizeNormal: 14 property int fontSizeLarge: 18 property string fontFamily: Microsoft YaHei // 尺寸配置 property int radius: 8 // 圆角 property int padding: 12 // 内边距 // 业务配置 property string apiBaseUrl: https://api.xxx.com property bool isDebug: true property string appVersion: 1.0.0 // }2、注册单例创建单例有两种方法方法一创建qmldir文件在同一文件夹新建qmldir这是 QML 注册单例的固定写法singleton Config 1.0 Config.qmlsingleton声明为单例Config单例名称直接用这个名字访问1.0版本号Config.qml对应文件方法二qmlRegisterSingletonType注册QML单例qmlRegisterSingletonType(QUrl(qrc:/Config.qml), AppConfig, 1, 0, Config);AppConfig: 为后续使用处通过import AppConfig时导入Config为后续使用控件名3、主页面、子界面PageA、子界面PageB主页面main.qmlimport QtQuick 2.14 import QtQuick.Layouts 1.14 import QtQuick.Window 2.14 Window { width: 500 height: 300 x: 100 y: 100 color: #FFFFFF visible: true title: QtQbject RowLayout { anchors.centerIn: parent spacing: 20 PageA {} // 使用全局配置 PageB {} // 使用同一个全局配置 } // 测试修改配置 → 所有页面自动同步更新 Component.onCompleted: { console.log(全局主色, Config.primaryColor) Config.primaryColor #FF4081 // 解开即可看到所有页面颜色同步变化 } }子界面PageA.qmlimport QtQuick 2.14 import QtQuick.Layouts 1.14 import AppConfig 1.0 Rectangle { width: 200 height: 120 color: Config.bgColor radius: Config.radius ColumnLayout { anchors.centerIn: parent Text { text: 页面 A color: Config.primaryColor font.pixelSize: Config.fontSizeLarge font.family: Config.fontFamily } Text { text: API: Config.apiBaseUrl font.pixelSize: Config.fontSizeNormal } } }子界面PageB.qmlimport QtQuick 2.14 import QtQuick.Layouts 1.14 import AppConfig 1.0 Rectangle { width: 200 height: 120 color: Config.bgColor radius: Config.radius ColumnLayout { anchors.centerIn: parent Text { text: 页面 B color: Config.warningColor font.pixelSize: Config.fontSizeLarge } Text { text: 版本: Config.appVersion font.pixelSize: Config.fontSizeNormal } } }