• 怎样得到QML package的具体API接口


    虽然我们的developer站点有丰富的API介绍,可是,有些API的介绍可能并不全,有些API也在不断地演进中。

    为了得到更具体的API,我们能够通过例如以下的命令来得到更加具体的信息。比方我们对“SingleDownload”API来得到更加多的信息。


    $qmlplugindump Ubuntu.DownloadManager 0.1



    显示的结果例如以下:


    import QtQuick.tooling 1.1


    // This file describes the plugin-supplied types contained in the library.
    // It is used for QML tooling purposes only.
    //
    // This file was auto-generated by:
    // 'qmlplugindump Ubuntu.DownloadManager 0.1'


    Module {
        Component {
            name: "Ubuntu::DownloadManager::DownloadError"
            prototype: "QObject"
            exports: ["Error 0.1"]
            exportMetaObjectRevisions: [0]
            Property { name: "type"; type: "string"; isReadonly: true }
            Property { name: "message"; type: "string"; isReadonly: true }
        }
        Component {
            name: "Ubuntu::DownloadManager::SingleDownload"
            prototype: "QObject"
            exports: ["SingleDownload 0.1"]
            exportMetaObjectRevisions: [0]
            Property { name: "autoStart"; type: "bool" }
            Property { name: "errorMessage"; type: "string"; isReadonly: true }
            Property { name: "isCompleted"; type: "bool"; isReadonly: true }
            Property { name: "downloadInProgress"; type: "bool"; isReadonly: true }
            Property { name: "allowMobileDownload"; type: "bool" }
            Property { name: "throttle"; type: "qulonglong" }
            Property { name: "progress"; type: "int"; isReadonly: true }
            Property { name: "downloading"; type: "bool"; isReadonly: true }
            Property { name: "downloadId"; type: "string"; isReadonly: true }
            Property { name: "headers"; type: "QVariantMap" }
            Signal {
                name: "canceled"
                Parameter { name: "success"; type: "bool" }
            }
            Signal {
                name: "finished"
                Parameter { name: "path"; type: "string" }
            }
            Signal {
                name: "paused"
                Parameter { name: "success"; type: "bool" }
            }
            Signal {
                name: "processing"
                Parameter { name: "path"; type: "string" }
            }
            Signal {
                name: "progressReceived"
                Parameter { name: "received"; type: "qulonglong" }
                Parameter { name: "total"; type: "qulonglong" }
            }
            Signal {
                name: "resumed"
                Parameter { name: "success"; type: "bool" }
            }
            Signal {
                name: "started"
                Parameter { name: "success"; type: "bool" }
            }
            Signal {
                name: "errorFound"
                Parameter { name: "error"; type: "DownloadError&" }
            }
            Signal { name: "errorChanged" }
            Method {
                name: "registerError"
                Parameter { name: "error"; type: "Error"; isPointer: true }
            }
            Method {
                name: "bindDownload"
                Parameter { name: "download"; type: "Download"; isPointer: true }
            }
            Method {
                name: "unbindDownload"
                Parameter { name: "download"; type: "Download"; isPointer: true }
            }
            Method {
                name: "onFinished"
                Parameter { name: "path"; type: "string" }
            }
            Method {
                name: "onProgress"
                Parameter { name: "received"; type: "qulonglong" }
                Parameter { name: "total"; type: "qulonglong" }
            }
            Method {
                name: "onPaused"
                Parameter { name: "wasPaused"; type: "bool" }
            }
            Method {
                name: "onResumed"
                Parameter { name: "wasResumed"; type: "bool" }
            }
            Method {
                name: "onStarted"
                Parameter { name: "wasStarted"; type: "bool" }
            }
            Method {
                name: "onCanceled"
                Parameter { name: "wasCanceled"; type: "bool" }
            }
            Method { name: "start" }
            Method { name: "pause" }
            Method { name: "resume" }
            Method { name: "cancel" }
            Method {
                name: "download"
                Parameter { name: "url"; type: "string" }
            }
        }
        Component {
            name: "Ubuntu::DownloadManager::UbuntuDownloadManager"
            prototype: "QObject"
            exports: ["DownloadManager 0.1"]
            exportMetaObjectRevisions: [0]
            Property { name: "autoStart"; type: "bool" }
            Property { name: "cleanDownloads"; type: "bool" }
            Property { name: "errorMessage"; type: "string"; isReadonly: true }
            Property { name: "downloads"; type: "QVariantList"; isReadonly: true }
            Signal { name: "errorChanged" }
            Method {
                name: "download"
                Parameter { name: "url"; type: "string" }
            }
        }
    }


    我们通过使用“finished”信号能够得到下载完毕的事件而进行分别的处理!


    另外一个样例(Push notification)


    liuxg@liuxg:~$ qmlplugindump Ubuntu.PushNotifications 0.1
    import QtQuick.tooling 1.1
    
    // This file describes the plugin-supplied types contained in the library.
    // It is used for QML tooling purposes only.
    //
    // This file was auto-generated by:
    // 'qmlplugindump Ubuntu.PushNotifications 0.1'
    
    Module {
        Component {
            name: "PushClient"
            prototype: "QObject"
            exports: ["PushClient 0.1"]
            exportMetaObjectRevisions: [0]
            Property { name: "appId"; type: "string" }
            Property { name: "token"; type: "string"; isReadonly: true }
            Property { name: "notifications"; type: "QStringList"; isReadonly: true }
            Property { name: "status"; type: "string"; isReadonly: true }
            Property { name: "persistent"; type: "QStringList"; isReadonly: true }
            Property { name: "count"; type: "int" }
            Signal {
                name: "countChanged"
                Parameter { type: "int" }
            }
            Signal {
                name: "notificationsChanged"
                Parameter { type: "QStringList" }
            }
            Signal {
                name: "persistentChanged"
                Parameter { type: "QStringList" }
            }
            Signal {
                name: "appIdChanged"
                Parameter { type: "string" }
            }
            Signal {
                name: "error"
                Parameter { type: "string" }
            }
            Signal {
                name: "tokenChanged"
                Parameter { type: "string" }
            }
            Signal {
                name: "statusChanged"
                Parameter { type: "string" }
            }
            Method { name: "getNotifications" }
            Method {
                name: "notified"
                Parameter { name: "appId"; type: "string" }
            }
            Method { name: "emitError" }
            Method {
                name: "clearPersistent"
                Parameter { name: "tags"; type: "QStringList" }
            }
        }
    }
    


  • 相关阅读:
    数学
    数学
    Computer Science
    数学
    Computer Science
    元学习
    数学
    数学
    数学
    数学
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6800055.html
Copyright © 2020-2023  润新知