問題タブ [qstatemachine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QStateMachine 遅延関数についての説明
私は自分のプログラムでこの関数を使用しました:
例からコピーして貼り付けましたが、コードのこの部分がわかりませんでした:
誰でもこのコードが何であるかを説明できますか? プログラムでどのように機能しますか?
PS。私はこれでそのコードを変更しようとしましたが、うまくいきませんでした:
c++ - 状態遷移を引き起こす QStateMachine get イベント
QStateMachine を作成しました。状態の遷移を引き起こしたイベントを取得する必要があります。EnterStateInit()
この呼び出しの原因となった信号をスロット内に入れる機会はありませんか。ここに私のサンプルコード:
qml - StateMachine と State 内の QML スコープ
QMLスコープに関するドキュメントを読みました。
このドキュメントでは、次のことが許可されています (コンポーネント インスタンス階層の下で、上記のドキュメントの 2 番目の例):
マイ ステートマシン ( BaseStateMachine.qml
):
私の州 ( BaseState.qml
):
私のメイン ( main.qml
):
しかし、次のエラーが表示されます。
qrc:/qml/BaseState.qml:4: ReferenceError: someProperty is not defined
私は何か誤解していますか?また、qml の StateMachine に関するドキュメントも読みましたが、StateMachine と State 内でのスコープの例外は見つかりませんでした。
アップデート:
このようにIDを追加するとBaseStateMachine.qml
:
someProperty
その後、QtCreator はinを認識するようになりBaseState.qml
ます。「認識される」の下で、つまり、その中のプロパティを ctrl/command+click すると、 がBaseState.qml
表示されBaseStateMachine.qml
ます。QtCreatorから ID を削除するとすぐにBaseStateMachine.qml
、もう見つかりsomeProperty
ません。
c++ - QStatemachine を使用して ListView に影響を与える方法は?
QStatemachine を使用して UI を管理するこの Projekt を取得しました。ここで、カスタマイズされたリストを追加します。UI は、キー イベントによってのみ操作されることになっています。私が理解している限り、qml 側に ListView が必要です。
ListView のデリゲートは、マウス入力または直接キー入力にのみ反応します。しかし、UI のすべての重要なイベントを処理しているため、C++ で QStatemachine を使用して操作しました。右矢印キーを押したときにやりたいことは、リストを左にシフトすることです。
(currentItem は常に画面の中央にあります。)
したがって、私の ListView は現時点では次のようになっています。
c++ Statemachine は、シグナルを qml に送信する QStatemachine です。
Listview のデリゲートにシグナルをバインドするにはどうすればよいですか?
python - 実行時に動的な値で QState.assignProperty を使用する
QStateMachine
-System のPyQt5
適切な使用方法について質問があります。
使用する
がアクティブなときはいつでも -property"Some text"
に設定できます。plainText
aState
質問:"Some text"
実行前に が定数または既知でない場合はどうなりますか? 私の意図は、状態に入ったときに適切な値を生成する値の代わりに、関数を渡すことです ( partial
or式をイベントに接続するのと同じです)。lambda
この動作をエミュレートする唯一のアイデアは、プロパティを に設定する関数を接続することaState.entered
です。ただし、プロパティが設定されている場所が混同されており、QStateMachine
手動で状態を自分で設定する必要がないように使用する理由があるため、このソリューションには満足していません。