アプリケーションの Groundwork をコーディングしており、pyside を使用してアプリケーションを開発しています。私が抱えている唯一の問題は、qmlスイッチをアクティブにすることです。現在、私はqmlファイルに持っています:
signal buttonClicked;
//function start(){text.text="started";buttonClicked()}
Switch {
id:switchComponent
anchors.verticalCenterarent.verticalCenter;
anchors.horizontalCenterarent.horizontalCenter;
}
//end of switch
Text {
id:text
color:"red"
anchors.bottom: switchComponent.top
anchors.horizontalCenter: switchComponent.horizontalCenter
//text: switchComponent.checked ? "GROUNDWORK ON" & start() : "Press to Start"
//text: switchComponent.checked ? "GROUNDWORK ON" && start() : "Press to Start"
text: switchComponent.checked ? start() : "Press to Start"
font.pixelSize: 30
smooth:true
}
アプリケーションが起動すると、switchedComponent を押すとシグナルが python に送信され、シグナルに接続された関数が開始されますが、スイッチが青に変わることはなく、テキストが「開始済み」に変わりません。アプリケーションが実行されていることを知る唯一の方法は、約 10 秒後にシステムがアプリケーションを閉じるように求めることです。NO を押すと、アプリは問題なく動作します。
なぜこれが起こるのか誰か知っていますか?私は基本的に、Python関数が実行を開始する前にスイッチとテキストをアクティブにして、ユーザーが何が起こっているかを知るようにしたいだけです。編集: 完全な qml ファイルはこちらにあります。https://projects.developer.nokia.com/airplay/browser/groundwork/qml/main.qml Python 関数の処理時にブロックします。