この関数は、Tkinter のシンプルなダイアログ画面を表示して簡単なユーザー入力を要求する Python スクリプトの 1 つに含まれています。機能は動作します。ただし、これには2 つの問題があります。
- 2 つのウィンドウが開きますが、必要なのは 1 つだけです。しかし、 master = Tk()を削除すると、エラーが発生します。
AttributeError: 'NoneType' オブジェクトには属性 'winfo_viewable' がありません
ある時点でそれを理解するのはいいことですが、私の主な問題は2番目のものです:
- シンプルなダイアログ画面が表示されるたびに、アクティブになる前に最初にクリックする必要があり、面倒です。それを修正するために、こことここで提供されている解決策を試しましたが、うまくいきません。最初のリンクは何もしませんでした.2番目のリンクはmaster.Tk()ウィンドウを前面に持ち上げるのに役立ちましたが、それは私が必要とするものではありません. シンプルなダイアログ ウィンドウを一番上のウィンドウにする必要があり、コードを実行して画面がポップアップしたときに、最初にクリックしなくても自動的に入力できるように、自動アクティブ化する必要があります。
どんな助けでも大歓迎です!
私のコード:
def getUser():
master = Tk()
newList2=str(newList).replace(", ","\n")
for ch in ['[',']',"'"]:
if ch in newList2:
newList5=newList2.replace(ch,"")
userNr=simpledialog.askinteger("Enter user number", newList2)
chosenUsernr= userNr - 1
global chosenUsernrdef
chosenUsernrdef = chosenUsernr
master.destroy()