2016-10-22 6 views
-1

基本的に私は4つのテキストボックスが必要です。なぜなら、理由は何でも、最初にコードを実行すると、テキストボックスのものは何も入力しない/選択することができません。 ...私はこれは私がyesまたはnoの質問を起動時にポップアップを持っているという事実としなければならないかもしれないと思うが、テキストボックスには、私がポップアップ質問に答えるた後も注力されませんPython tkinter textは起動時にエントリを許可しません。

from tkinter import * 
from tkinter import messagebox 

class GuiTesting: 
    def __init__(self, master): 
     self.master = master 
     master.title('Testing Window') 

     self.tLabel = Label(master, text='First TextBox') 
     self.tLabel.grid(row=0, column=0, columnspan=1) 
     self.text = Text(master, height=1) 
     self.text.grid(row=0, column=1, columnspan=2) 

     messagebox.askyesno('Would you like to continue on your last playlist') 

     self.greeter = Button(master, text='Add', command=self.greet) 
     self.greeter.grid(row=5, column=0, columnspan=2) 

    def greet(self): 
     print('you pressed a button') 


# outside of class def 
root = Tk() 
gui = GuiTesting(root) 
root.mainloop() 

削除ウィンドウには何か関係がありますか?ウィンドウの外をクリックしてテキストボックスに戻ってくると、それを選択できるようになるので、それはフォーカスのことだと思います...?助けてください!前もって感謝します!そして、申し訳ありませんが、私はPycharmでこれをやっているのを忘れていました。コードがより明確になることを願っています。私はそれをテストし、それはテキストボックスに焦点を当てていません。

+0

このコードで問題が再現されない場合は、解決できません。また、あなたがこれを見ているプラ​​ットフォームを知っていると良いでしょう。 –

+0

'テキストボックスがフォーカスを取得しない ' - テキストボックスを直接クリックしてもテキストを入力できないということですか? PyCharmを使わずにconsole/terminal/cmd.exe/powershellでコードを実行しようとしましたが、同じ問題がありましたか? – furas

+0

勝利10でIDLEで実行されている問題を再現しました。焦点の問題はシステム固有のものである可能性があります。 「ウィンドウを削除」はありませんが、メッセージボックスをコメントアウトすると、問題はなくなります。なぜそれが問題を引き起こすのか分かりません。 –

答えて

0

あなたはよく質問が書かれています。ループのすぐ上のTkinterでのメッセージボックスの使用には問題があります。チェック: tkinter messagebox prevents Entry widget from working

をあなたはいくつかのことを変更する必要があります。

root.after(1,self.ask) 
:後に使用し、代わりにすぐにメッセージボックスを呼び出すので

def ask(self): 
    x = messagebox.askyesno('Would you like to continue on your last playlist') 
    print x #or whatever 
    self.text.focus() 

self.text = Entry(master) 

は、メソッドを追加します。

編集: クリアするには、root.after

messagebox.askyesno('Would you like to continue on your last playlist') 

の代わりにする必要がありますし、あなたがラムダを使用しない限り、新しい方法は、定義されなければなりません。

+0

私はEntryでそれを変更しようとしましたが、私はまだ同じ問題を抱えていました。それは大したことではありません。ウィンドウの外側をクリックして戻ると、テキストボックスが開きます。とにかくありがとう:) –

+0

私が書いた残りの部分に注意してください。 root.after stuffは最も重要な部分です。 – kabanus

関連する問題