前提
for文で三つのframeを設置しています。
実現したいこと
for文で作成した三つのframeに三つのボタンを設置したいです。そして,ボタンを押したら,押されたボタンが設置されているframeを削除したいです。
発生している問題・エラーメッセージ
for文で三つのframeの作成は成功しましたが,ボタンが一つしか設置されていません。
buttonを設置するmasterを改善すればよいのでしょうか。ご教授お願い致します。
python
import random import tkinter as ttk from certifi import contents class Main(ttk.Frame): def __init__(self, master = None): super().__init__(master) self.master.geometry("500x60") self.master.resizable(False,False) self.canvas1 = ttk.Canvas(self.master,width=500, height=60, bg="#fafafa") self.canvas1.pack() x1 = 10 y1 = 10 for i in range(3): contents1 = "frame" contents2 = contents1 + str(i+1) self.contents2 = ttk.Frame(self.canvas1,width=138,height=42) self.contents2.place(x=x1,y=y1) contents3 = "button" contents4 = contents3 + str(i+1) self.contents4 = ttk.Button(master=self.contents2, text=" 抽選 ", bg="#fafafa", fg="#000000",font=('MS Pゴシック', '17')) self.contents4.place(x=x1-10,y=y1-10) self.contents4.pos = [x1-10,y1-10] self.contents4.bind("<ButtonPress>",self.click_button) x1 += 165 def click_button(self,event): chusen() btn_pos = event.widget.pos #self.contents2.destroy() event.widget.destroy() self.result = ttk.Label(master=self.canvas1, text=selected_fruits, bg="#fafafa", fg="#000000",font=('MS Pゴシック', '17')) self.result.place(x=btn_pos[0],y=btn_pos[1]) def chusen(): global selected_fruits fruits = ["apple", "grape", "orange"] selected_fruits = random.choice(fruits) fruits.remove(selected_fruits) def main(): root = ttk.Tk() app = Main(master=root) app.mainloop() if __name__ == "__main__": main()
補足情報(FW/ツールのバージョンなど)
win11,python3.10.4
まだ回答がついていません
会員登録して回答してみよう