簡體   English   中英

如何導入QML單例

[英]How to import QML singleton

我正在嘗試導入我的單例模塊,但一直沒有安裝“樣式”模塊

這是我的項目結構

在此處輸入圖片說明

Style.qml

pragma Singleton
import QtQuick 2.0

QtObject {

    property color subsectionlabelColor: "white"
    property color appSectionTitleColor: "white"
}

qmldir

singleton Style 1.0 Style.qml

Main.qml

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.3

import Style 1.0

Window {

我想將Style.qml保留在qrc文件之外,以便可以更輕松地對其進行更改。

請有人可以解釋發生了什么嗎?

謝謝

通常,如果您導入單身人士所在的目錄 ,它應該可以工作。

Main.qml ,將import Style 1.0替換為import "Style" (或似乎是您從Main.qml到包含Style.qml的目錄的相對路徑。導入目錄應運行qmldir腳本,該腳本允許單例踢。

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.3

import "Style"  // relative path to the directory containing Style.qml

Window {

使用引擎的addImportPath API添加您的qtdir文件所在目錄的路徑。 請參閱示例https://doc.qt.io/qt-5/qtquickcontrols-flatstyle-example.html的 main.cpp文件

上述API可以在您的主要功能中用作:

int main(int argc, char *argv[])

{

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);

QQmlApplicationEngine engine;
engine.addImportPath(":/imports"); /* Insert relative path to your import directory here */
engine.load(QUrl(QStringLiteral("qrc:/Main.qml")));

return app.exec();
}

需要添加導入路徑以解決錯誤“模塊未安裝”。 默認情況下,導入路徑為QT源目錄的導入路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM