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引数が渡されないため、イベントを削除する必要がありますので、それ以外の場合はエラーになります)括弧内のイベントパラメータを削除します
明らかに、この方法は、イベントハンドラは、イベントの種類が起こったかを決定することができないで配信イベント、することはできません。