私のプロジェクトでスクロールバーを使用しようとしています。フレームにキャンバス内のフレームを作成し、フレーム内にラベルを配置してからスクロールするコードを作成しました。これは、コードの一部です:place_configure()missing 1必要な位置引数: 'self'
statWindow = Tk()
statWindow.title("View Statistics")
statWindow.config(bg = "grey")
statWindow.geometry('600x700')
myframe =Frame(statWindow, relief=GROOVE, width=550, height=400, bd=1)
myframe.place(x=20, y=90)
canvas = Canvas(myframe)
frame = Frame(canvas)
myscrollbar = Scrollbar(myframe, orient="vertical", command=canvas.yview)
canvas.configure(width=530, height=400, yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right", fill="y")
canvas.pack(side="left")
canvas.create_window((0, 0), window=frame, anchor='nw')
frame.bind("<Configure>", myfunction)
def myfunction(event):
global canvas
canvas.configure(scrollregion=canvas.bbox("all"),width=530,height=400)
私は、コードを持っている:
Label(frame,text="hello", height=1, width=14, bg="white").grid(row=1, column=1)
これは完璧に動作し、しかし、私は本当に(.placeを使用する必要があります) Allthough私はラベルコードを変更したときto:
Label(frame,text="hello", height=1, width=14, bg="white").place(x=10, y=10)
ラベルが画面に表示されず、エラーが発生していないため、何も起こりません。私は、コードを変更するとき しかし:
Label(frame,text="hello", height=1, width=14, bg="white")
Label.place(x=10, y=10)
私はエラーを取得する:
TypeError: place_configure() missing 1 required positional argument: 'self'
なぜ私はフレームにラベルを配置することはできませんし、どのように私はこの問題を解決することができますか? ありがとう
彼らはクラスで 'place'を呼び出していません。彼らはインスタンス上でそれを呼び出しています。 –
'Label.place(x = 10、y = 10)'これはクラスで呼び出すように見えます。これに対して、 'Label(frame、text =" hello "、height = 1、width = 14、bg =" white ")。place(x = 10、y = 10)'は、期待どおりに動作しています。 – Fejs
あなたは正しいです。謝罪いたします。ある場所では、彼らはそれを間違ってやっている、彼らが正しいことをしている1つの場所で。これはタイトルの質問に答えます。 –