のクラスdefを使用してウィジェットを表示できません。ブログ、チュートリアルなどで見ると、次のコードではフレームにラベルが表示されない理由を理解できませんでした。クラスを定義していないときにこのタスクをうまく実行できますが、フレームやその他のウィジェットをより動的に作成できるようにこのアプリケーションを作成したいと考えています。ここにコードがあります。 が正常に動作し、ルートウィンドウにフレームが適切に表示されます。コードはエラーなしで実行されます。 print文とprint(type())文をadd_heading関数から追加しましたが、ラベルは表示されません。私が間違っていることを誰かが教えてくれることを願っています。おかげで事前は、既存のフレーム
#!/usr/bin/python3
from tkinter import *
class CompFrame(Tk):
def __init__(self, parent, rows, columns, title):
Frame.__init__(self, parent)
self.root = parent
f_w = screen_width/3
f_h = screen_height * .90
self = LabelFrame(root, text=title, width=f_w, height=f_h, bg="light grey")
self.grid_columnconfigure(columns, weight=1)
self.grid(row=rows, column=columns)
self.grid_propagate(False)
def add_heading(self, title):
label_width=12
ftitle = Label(self, text=title)
ftitle.configure(font='Helvetica 24 bold', width=label_width)
ftitle.place(x=".5i", y=".2i")
root = Tk()
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
root.geometry("%dx%d%d%d" % (screen_width,screen_height,0,0))
Calibrator = PhotoImage(file="image1.png")
Feeeder = PhotoImage(file="image2.PNG")
frame1 = CompFrame(root, 0, 0, "Component 1")
frame1.add_heading("NATURAL")
root.mainloop()
あなた 'CompFrame'は' Frame'、ない 'Tk'から継承する必要があります。これはすべての問題ではありませんが、問題の一部です。 –