私が作ろうとしている「ゲーム」用の「カスタムウィジェット」のテンプレートとなるクラスを作りたかったのです。問題は、私がクラスを呼び出すときにすべてを保持するFrameオブジェクトを指定すれば、それを動作させることしかできないということです。私は私が持っているStatusButton().frame.grid()
クラスをオブジェクトに適切に「接続」できない
from tkinter import *
from tkinter.ttk import Progressbar
class StatusButton(Frame):
def __init__(self, master):
super(StatusButton, self).__init__()
self.frame = Frame(master, padx = 10, pady = 10, bd= 5, relief = RAISED)
self.label = Label(self.frame, text = "Hunger Bar")
self.pgbar = Progressbar(self.frame)
self.button = Button(self.frame, text = "Eat")
self.label.pack()
self.pgbar.pack()
self.button.pack(pady = 5, ipadx = 15)
return
root = Tk()
buttonslist = [StatusButton(root) for x in range(16)]
for r in range(4):
for c in range(4):
StatusButton(root).frame.grid(row = r, column = c)
root.mainloop()
私は使用するだけStatusButton().grid()
を書くために必要とするのではなく、私の全体の午後を検索してきたと...
次のコードの動作を、具体的な答えを見つけることができませんでしたが、以前のコードが実行されたときに、代わりにStatusButton().grid()
があるため、フレームオブジェクトをクラスに適切に「接続」していないと推測します.TKinterウィンドウは通常はポップアップしますが、私が空のFrameオブジェクトを「グリッド化」していたかのように。 StatusButton().grid()
を実行すると、私の "カスタムウィジェットのこと"が表示されるように、これを修正する方法はありますか?これはnoobのエラーであれば
申し訳ありませんが、それはプログラミング