#バグ〜Tkinterのイベントトリガー

PythonでTkinterでは、バグのうち、コードを書く、かなり長い間探して、これを覚えています。

インポートTkinterのAS TK
 から Tkinterのインポートフレーム
 から   のTkinter のインポートメッセージボックス
 から   Tkinterのインポートフォント
ウィンドウ = tk.Tk() インターフェイス 
the_width、the_height window.maxsize =() フルスクリーンの長さ、幅 
button_list =リスト() ボタンリスト 
each_width_height = 9 @ 83 #の各ボタンのエッジ長 
now_x = 0 横軸の現在位置(0〜8、上記X軸、Y軸の左側) 
now_y = 0 

設定画面タイトル 
window.title(アルファ豚数独" #は、画面サイズを設定しました
window.geometry(" {X} {} " .format(the_width、the_height)) 



フォント 
F1 = =フォント(' のArial '、12は、' 太字' 
Shuzi = " ワッハッハー" 
セットラベル 
テキスト= tk.Label (ウィンドウ、テキスト= ' '、BG = ' グリーン'、=フォント(' のArial '、12)は、幅= 30、高さ= 2 #1 ラベル配置 
text.place(X = 90 * 12、 Y = 0) 

イベントハンドラ
DEF ボタン1(イベント):
    マウスの左ボタンをクリックして
    印刷する123 の戻り0 


#を(空の配列の割り当ては、アーティファクトをアペンド機能を使用する必要があります!)空の配列の割り当てに
するためにレンジ(81 ):
    button_list.append(tk.Button(ウィンドウを、テキスト = Shuzi、コマンド= Button1を、フォントF1 =、= each_width_height幅、高さ= each_width_height // 2 ))
表示ボタン位置
のための I におけるレンジ(9。 ):
     のための J 。レンジ(9 ):
        button_list [(I * + J. 9)]。プレイス(J * X = 90、Y = I 90 *)#1 注座標のリストの順序こと、XY反転ビット各ボタン、みなさ左クリックのマウスイベント(すなわち、<ボタン-1>)、バインドボタン1へのカスタムイベントハンドラの
ためのレンジ(9 :)
     のための J におけるレンジ(9 ):
        button_list [( I * + J. 9)]。バインド(" <-Theボタン。1> " 、ボタン1) 


は、メッセージループ入力 
)(window.mainloopを

私はちょうどボタン、プログラムエラーを押したとき。

その理由は、

button_list [(I * 9 + J)]。バインド(" <ボタン-1> "、ボタン1)

button_list.append(tk.Button(ウィンドウ、テキスト= shuzi、コマンドボタン1 =、フォント= F1、幅= each_width_height、高さ= each_width_height // 2))

中的

コマンドボタン1 =

繰り返される(または競合)

ソリューション1または2のいずれか:

方法1:削除

コマンドボタン1 =

方法2:

ザ・

 I における範囲(9 のための J における範囲(9 ):
        button_list [(私は。BIND 9 + J *)]を(" <ボタン1> "、ボタン1)

このコードは削除して、配置する必要がありますされます

イベントハンドラは、
DEF ボタン1(イベント):
    は、マウスの左ボタンをクリックして
    印刷を123 を返す 0

(:「ボタン1機能は、一つのパラメータを持っていますが、実際には0を受信した」コマンド=ボタン1引数が渡されないため、イベントを削除する必要がありますので、それ以外の場合はエラーになります)括弧内のイベントパラメータを削除します

明らかに、この方法は、イベントハンドラは、イベントの種類が起こったかを決定することができないで配信イベント、することはできません。

おすすめ

転載: www.cnblogs.com/ljfl-study/p/12402664.html