Do you want to know how your customers use your applications and devices? Try Qt Insight Beta.
最新版Qt 6.3已正式发布。 了解更多。
最新バージョンQt 6.3がご利用いただけます。 詳細はこちら

コルーチンと QML で遊んでみた

この記事は The Qt BlogPlaying with coroutines and QML を翻訳したものです。
執筆: Jesús Fernández, 2018年05月29日

(別名 コルーチンと Qt で遊んでみた パート2)

5747a7530206ac410b6bd7c1b8490d7d389ad3a5 により JavaScript Generators のサポートが QML に追加されました。これによって、前回の記事のフィボナッチ数列もジェネレーターで書けるようになりました。

サンプルコード:

import QtQuick 2.11
import QtQuick.Window 2.11
import QtQuick.Controls 2.2

Window {
property var fibonacci: function* () {
yield "0: 0"
yield "1: 1"
var f0 = 1, f1 = 0, n = 2;
while (true) {
var next = f1 + f0;
f0 = f1;
f1 = next;
yield n++ + ": " + (f0 + f1);
}
}

visible: true
width: 640
height: 480
title: qsTr("Fibonacci")

Row {
anchors.fill: parent
Button {
id: button
property var coroutine: fibonacci()
width: parent.width / 2; height: parent.height
text: coroutine.next().value
onPressed: text = coroutine.next().value
}

Button {
text: "Reset!"
width: parent.width / 2; height: parent.height
onPressed: {
button.coroutine = fibonacci()
button.text = button.coroutine.next().value
}
}
}
}

素敵ですね!


Blog Topics:

Comments