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 找到适用的加载程序的主要内容,如果未能解决你的问题,请参考以下文章