私は現在 tkinter の基本を学んでおり、いくつかの最も基本的なウィジェットに関する知識をテストするために、小さくて非常に単純なプログラムを作成しています。
おそらく私の理解不足が原因で、検証とエントリで問題が発生しています... これには 3 つの疑問があります。
1 - ここで行われたことを行う方法: https://stackoverflow.com/a/4140988/2828287クラス部分なし。スクリプトの実行時にそれを行うだけです。
2 - それらすべての自己は何ですか。と.自分はそこにいる?それがクラスであるために存在するものと、検証メソッド自体のために存在するものはどれですか??
3 - コードのどこが間違っていますか? この説明に基づく >> http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/entry-validation.html
from tkinter import *
from tkinter import ttk
# function that should take the '%d' replacer and only validate if the user didn't delete
def isOkay(self, why):
if why == 0:
return False
else:
return True
okay = entry.register(isOkay) # didn't understand why I had to do this, but did it anyway...
entry = ttk.Entry(mainframe, validate="key", validatecommand=(okay, '%d'))
# the mainframe above is a ttk.Frame that contains all the widgets, and is the only child of the usual root [ = Tk()]
entry.grid(column=1,row=10) # already have lots of stuff on upper rows
私が得ているエラーは次のようになります: .register() のもの
--編集済みコード-- これでエラーは発生しませんが、削除は可能です...
def isOkay(why):
if (why == 0):
return False
else:
return True
okay = (**root**.register(isOkay), "%d")
entry = ttk.Entry(mainframe, validate="key", validatecommand=okay)
entry.grid(column=1,row=10)
('root' 部分が ** ** の間に書かれている場合、それはルートである必要がありますか? または、それを使用するウィジェットの任意の親である可能性がありますか? または、直接の親でなければなりませんか?たとえば、ルート >> メインフレーム >> エントリがあります。ルート、メインフレーム、または両方である必要がありますか?)