QML.jl:没有为 QML 找到适用的加载程序

Posted

技术标签:

【中文标题】QML.jl:没有为 QML 找到适用的加载程序【英文标题】:QML.jl: No applicable_loaders found for QML 【发布时间】:2021-03-16 07:43:12 【问题描述】:

我无法使用 QML.jl,因为我的代码失败并出现以下错误

ERROR: No applicable_loaders found for QML
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] applicable_loaders at /home/wali/.julia/packages/FileIO/BUPwf/src/loadsave.jl:11 [inlined]
 [3] load(::String; options::Base.Iterators.PairsSymbol,String,TupleSymbol,NamedTuple(:greeting,),TupleString) at /home/wali/.julia/packages/FileIO/BUPwf/src/loadsave.jl:112
 [4] #3 at ./REPL[18]:17 [inlined]
 [5] mktempdir(::var"#3#4", ::String; prefix::String) at ./file.jl:709
 [6] mktempdir(::Function, ::String) at ./file.jl:707 (repeats 2 times)
 [7] top-level scope at REPL[18]:1

包的测试也因同样的错误而失败。

如果有帮助,这是我尝试运行的代码

        mktempdir() do folder
          path = joinpath(folder, "main.qml")
          write(path, """
          import QtQuick 2.0
          import QtQuick.Controls 1.0
          ApplicationWindow 
            visible: true
            Text 
              text: greeting
            
            Timer 
              running: true
              onTriggered: Qt.quit()
            
          
          """)
          load(path; greeting = "Hello, World!")
          exec()
        end

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。如果你使用下面的代码 sn-ps 特别是使用loadqml() 而不是load()

文件夹结构如下:

源/ hello.jl qml/ hello.qml

所以我在 qml 子文件夹中创建了一个像这样的分隔 hello.qml 文件:

import QtQuick 2.6
import QtQuick.Controls 2.3

ApplicationWindow 
visible: true
    Text 
        text: greeting
    
    Timer 
        running: true
        onTriggered: Qt.quit()
    

hello.jl 中的 Julia 代码如下所示:

using QML
using Qt5QuickControls2_jll

qml_file = joinpath(dirname(@__FILE__), "qml", "hello.qml")

loadqml(
    qml_file,
    greeting = "Hello, World!"
)

# Start the GUI
exec()

如果您从src 文件夹julia hello.jl 运行,这应该会返回

我使用了 Julia 版本 1.6.3 版 并安装了以下软件包:

Pkg.add("IJulia") Pkg.add("QML") Pkg.add("Observables") Pkg.add("Qt5QuickControls2_jll") Pkg.add("Qt5QuickControls_jll")

【讨论】:

以上是关于QML.jl:没有为 QML 找到适用的加载程序的主要内容,如果未能解决你的问题,请参考以下文章

连接滑块以控制 qml 相机的缩放

Qml 图像和内存释放

QML 加载,找不到文件

Qt/QML。一种无负载学习图像大小的方法

QML 3D 基本示例

Qml FontLoader 未加载自定义字体