0

フレーム内に含まれるウィジェットのテーブルがあります(別のフレーム内ですが、それは重要ではありません)

次のようになります。

self.myTable = Frame(self.pf) #self.pf is the frame which contains my table
Label(self.myTable, text='Amount').grid(row=0, column=0)
Label(self.myTable, text='Rate').grid(row=0, column=1)
Button(self.myTable, text='Delete').gri(row=0, column=2)
Button(self.myTable,)text='Editor').grid(row=0, column=3)

ご覧のとおり、フレーム (テーブル) 内のウィジェットの一部はラベルであり、その他はボタンです。

親にアクセスしてボタン オブジェクトのみを操作する方法はありますか? 例: 親を介してボタンのみの状態を変更する

このコードがいくつかの理由で正しくないことはわかっていますが、本質的にはこれが私がやろうとしていることです self.myTable.CHILDRENTHATAREBUTTONS.config(state=DISABLED)

4

3 に答える 3

1

ラベルも返すwinfo_children http://effbot.org/tkinterbook/widget.htmを参照してください。ボタンへの参照を保存しません。それが必要かどうかはわかりません。次の簡単な例では、各ボタン インスタンスをリストに追加します。これは簡単な方法です。

try:
    import Tkinter as tk     ## Python 2.x
except ImportError:
    import tkinter as tk     ## Python 3.x

def callback():
    for but in button_list:
        but.config(state=tk.DISABLED)

master=tk.Tk()
table = tk.Frame(master)
tk.Label(table, text='Amount').grid(row=0, column=0)
tk.Label(table, text='Rate').grid(row=0, column=1)
table.grid()

button_list = []
but=tk.Button(table, text='Delete', command=callback)
but.grid(row=0, column=2)
button_list.append(but)
but=tk.Button(table, text='Editor', command=callback)
but.grid(row=0, column=3)
button_list.append(but)

master.mainloop()
于 2013-07-02T19:55:27.633 に答える