Q&A
前提
ここに質問の内容を詳しく書いてください。
PythonでTkinterを使用して、同じ場所に複数回別のラベルを表示させると前のラベルと重なって表示されます。これを回避するためにbox_deleteという関数を用意して消そうとしましたが上手く機能していません。どうしたら前の文字を消して新しい文字を上に乗せることが出来ますか?
python
1 2# tkinterのインポート 3import tkinter as tk 4import tkinter.ttk as ttk 5from tkinter import messagebox 6import numpy as np 7import pandas as pd 8import math 9import os 10#条件に一致するファイルの取得 11import glob 12 13def box_delete(): 14 if c==1: 15 label1.place_forget() 16 elif c==2: 17 label2.place_forget() 18 elif c==3: 19 label3.place_forget() 20 else: 21 pass 22 23def enter_data(event): 24 if (combobox1.get())=='丸': 25 box_delete() 26 c=1 27 28 label1=tk.Label(root2,text='あいうえお') 29 label1.place(x=60,y=210) 30 print(c) 31 elif (combobox1.get())=='板': 32 box_delete() 33 c=2 34 35 label2=tk.Label(root2,text='さし') 36 37 label2.place(x=60,y=210) 38 print(c) 39 40 41 elif (combobox1.get())=='六角': 42 box_delete() 43 c=3 44 45 label3=tk.Label(root2,text='たちつてとかき') 46 label3.place(x=60,y=210) 47 print(c) 48 49root2 = tk.Tk() 50root2.title('なにぬねの') 51root2.geometry('480x840') 52 53 54 55module1 = ('丸','板', '六角') 56variable1 = tk.StringVar() 57combobox1 = ttk.Combobox(root2, height=3,textvariable= variable1, values=module1) 58combobox1.place(x=90,y=170) 59combobox1.bind('<<ComboboxSelected>>', enter_data) 60 61label32=tk.Label(root2,text='形を選択') 62label32.place(x=30,y=170) 63c=0 64print(c) 65 66root2.mainloop()
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/12/15 06:51