python tkinterはボタンのテキスト値を取得します。


背景
最近、鶏肉はpython GUIを勉強しています。tkinterから入門して、まずソフトを作って練習したいです。
いろいろ考えて、計算機を作ることにしました。
計算機コードはここです。コンベヤー?ドア
問題の再現
サイクルを使って直接数字ボタンを作成する時に問題が発生しました。問題コードは次の通りです。

for i in range(3):
    num_frame = tk.Frame(major_frame)
    num_frame.pack()
    for count in range(3*i+1, 3*i+4):
        button = tk.Button(
            num_frame,
            text = count,
            activeforeground = "blue",
            activebackground = "pink",
            width = "13",
            command = lambda : entry.insert("end", count)
        )
        button.grid(row = i, column = count)
すべてのコードを参照してください
ボタンを押すたびに、入力ボックスに出現するのは常に9です。ループが終わったら、countの値は9になります。ボタンをクリックして入力ボックスにcountの値を入力するのは9です。
問題が見つかったら、私は何とかしてこの問題を解決します。
各インスタンス化されたButtonオブジェクトをリストや辞書に保存してみましたが、正しい索引が得られず、ボタンのテキストが得られませんでした。
解決方法
強い百度を通して、解決方法を見つけました。それは自分でButton類を作ります。
コードは以下の通りです

import tkinter
class myButton():
    def __init__(self, frame, text, entry, **kwargs):
        side = kwargs.get('side') if 'side' in kwargs else ()
        self.btn = tkinter.Button(
            frame,
            text = text,
            activeforeground="blue",
            activebackground="pink",
            width="13",
            command=lambda :entry.insert("end", text)
        )
        if side:
            self.btn.grid(row=side[0], column=side[1])
        else:
            self.btn.pack()
パラメータ解説
  • frame、Frameオブジェクト、指定ボタンはどのFrameオブジェクトに
  • を作成しますか?
  • text、文字列/数字、ボタンに表示されるテキストおよびボタンをクリックして取得するテキスト
  • entry、Entryオブジェクト、ボタンをクリックしたらテキストはどこにありますか?
  • kwargs、side
  • を含みます。
  • side、タプル、設定ボタンの位置
  • myButtonオブジェクトを実装することで、ボタンテキストが得られるButtonオブジェクトが作成されます。
    数値ボタンを列挙する
    
    for i in range(4):
        num_frame = tk.Frame(major_frame)
        num_frame.pack()
        if i < 3:
            for count in range(3*i+1, 3*i+4):
                myButton(num_frame, count, word_entry, side=(i, count))
            continue
        myButton(num_frame, 0, word_entry, side=(i, 0))
    
     効果図
     
    ここでは、python tkinterがボタンを獲得したテキスト値に関する記事を紹介します。python tkinterボタンのテキスト値の内容については、以前の記事を検索したり、下記の関連記事を引き続き閲覧したりしてください。これからもよろしくお願いします。