我一直在研究 qml。这是一个微型 mp3 播放器,用于播放当前目录中的一首歌曲。
如果 mac 的自制程序可以为您安装 qml 就好了,但它不能(我猜)。因此,我必须手动安装 qt 5.5( 通过它在 qt.io 的安装程序 )。
安装程序不会将命令链接到 /usr/local/bin 或类似文件,因此请原谅下面 shebang 行(第 1 行)中的长路径:
#!/usr/bin/env /users/paul/qt/5.5/clang_64/bin/qml.app/contents/macos/qml
import qtquick 2.2
import qtmultimedia 5.0
rectangle {
width: 200
height: 100
property bool playing: false
text {
anchors.centerin: parent
// one way binding - neat!
text: playing ? "stop music" : "start music"
}
audio {
id: playmusic
source: "memphisslim-ijustlandedinyourtown.mp3"
}
mousearea {
anchors.fill: parent
onclicked: {
if(playing == true) {
playmusic.stop()
playing = false
} else {
playmusic.play()
playing = true
}
}
}
}
这是一个优雅的语法 imo。不是丑陋的伙伴,比如 html 和 javascript。
该应用程序只播放一首歌曲。如果你有兴趣,那首歌是 memphis slim 的“i just landed in your town”。在 publicdomain4u 上阅读它,或者从 archive.org 获取这首歌
mac os x 上的应用程序:
我希望该应用程序提供从当前目录中选择歌曲的选择。 qml 中有一个 repeat{} 结构,它看起来正是我想要的,但无法列出文件,这是 api 中的一个大漏洞。至少,如果有的话,我找不到它,因为谷歌搜索结果中充斥着以前版本的 qt,而且 qml 的名称确实没有标准化(它也被称为 qtquick 和 qtcreator)。我相信 qt 的所有者希望您转而使用 C++ 或可以引导 qml 进行繁重工作的高级语言,例如 list_the_files_or_subdirectories_in_a_directory 。我所拥有的样式中的 qml 将 javascript 用于编程位(而不是声明式)。
nodejs 人员必须增强 javascript 以添加更多功能以使其在服务器端可用。根据我的需要,这将是 文件系统 api。你瞧,一个 oleg shparber (trollixx) 已经通过 将 node.js 移植到 qml 来 做到这一点。不过那只是 linux,而且只有在修补了您自己构建的 qt 5.5 之后(目前)。