よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

【失敗】QPythonのGUIアプリ開発/条件分け

QPythonのandroidhelperを使い、ダイアログの入力値によって条件分けをし、様々に連結して使えないかと試行錯誤していますが、上手くいきません。


たとえばこんなことがやりたい

  • メインメニューを出す
    • メインメニュー1
      • サブメニュー1.1
      • サブメニュー1.2
    • メインメニュー2
      • サブメニュー2.1
      • サブメニュー2.2
      • サブメニュー2.3


最初のメインメニューをdialogSetItemsで作りました。
そしてその選択によって、if文以降に条件で動作を分けて行けると思いました。しかし、最初に出したメニュー項目を選択しOKまたはキャンセルを押すと、プログラム自体が終了してしまう。
その後の処理に続いていきません。


下記、途中までのコピー。
これでもifの前まで動きはします。

#-*-coding:utf8;-*-
# 
"""
This is a quiet script, which runs background
"""
import androidhelper
droid = androidhelper.Android()

droid.makeToast("quietモード中!")


droid.dialogCreateAlert("メニュー") 
menu = ["メニュー1", "メニュー2", "メニュー3"] 
droid.dialogSetItems(menu) 
droid.dialogShow() 
response = droid.dialogGetResponse() 
print("response : ",response)
droid.makeToast(menu[response.result["item"]]) 
droid.dialogDismiss()
 
if response.result["item"]=="0":
    droid.dialogCreateInput("文字を入力して下さい。")
    droid.dialogSetPositiveButtonText("ok")
    droid.dialogSetNegativeButtonText("cancel")
    droid.dialogShow() 
    text = droid.dialogGetResponse()
    droid.dialogDismiss()

ifで条件分けしているところのdroid.dialogCreateInput("文字を入力して下さい。")以降を無理やりifの上の文に連続して書けば、続いてダイアログが立ち上がりはしますが、それだと条件分けが出来ない。

関数化しても同じでした。最初のダイアログが閉じたらプログラム全体が終了する。


うううぅぅぅ…



話はそれますが、上のコードの

droid.dialogShow() 
text = droid.dialogGetResponse()

の順序を入れ換えるとダイアログが出なくなります。

エラーメッセージも出なかったので見つけりのに苦労した…


うぅぅぅぅ…