2017-07-04 39 views
-1

私はいくつかのURL要求を行うUIのためのkivyライブラリを使ってこのコードをPythonで書いています。 私はこのコードを今すぐ共有する必要はありませんが、私はそれを説明しようとします。 基本的には、ユーザーがテキストボックスに入力してボタンをクリックすると、名前のリストが返され、その名前が画面に表示されます(これはすべてポップアップ内で行われます)。 問題は、リクエストを待っている間に読み込み中のメッセージが表示された回転ボールを表示することです。私はすべてのURL機能を別のスクリプトに持っています。 私がする必要があるのは、この2番目のポップアップを開き、URLリクエストの新しいスレッドを開始し、メインスレッドが正常に実行されてアニメーションが正しく表示されるようにすることです。次に、要求が完了したら、このポップアップを閉じて希望の結果を表示します。 誰かがアプリケーション外からkivys関数を呼び出す方法や、スレッド終了時を知る方法を知っていますか? 私はここで失われています。似たような指導や例があれば感謝します。 ありがとうございます!kivyを使ったマルチスレッド

答えて

0

kivyのマルチスレッド化は、GUIを更新する必要がない限り、非常に簡単です(そうではありません)。 1つのことを覚えておく必要があります.GUIはメインスレッド上で動作し、ブロックする必要はありません。あなたの操作が別のスレッドで実行されている限り、それは問題ありません。

アプリでローディング画面を実装すると、thisの例が使用されました。

今、難しい部分は、ポップアップを閉じる時期を知っています。 URL関数を呼び出すときにclose_popup_load_dataのようなコールバック関数を渡すことができます.2つのスレッドを作成できます.1つは作業を行い、もう1つは作業が完了したかどうか(スレッドが生存しているかどうかを確認できます)ポップアップを閉じてデータを読み込みます。これを行うには多くの方法があります。

まず何かを簡単にして、それが機能するかどうかを確認してください。

+0

こんにちは、私はこの部分を保留しなければならないので、しばらくしています。あなたが初めて言ったことは得られませんでしたが、今私はそう思います。 とにかく、私はスレッドにポップアップオブジェクトを送信し、スレッドを閉じて解決しました。また、呼び出しクラスをスレッドに送信して結果を取得しました。 **私はそれが行われると思われる方法ではないことを知っています**しかし、プロトタイピング目的のためには動作します。 これを実行した後、私はあなたの助言を得て、後でそれを実装しようとします。ありがとう – bleand

関連する問題