网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月06日漏签0天
python吧 关注:476,954贴子:1,974,644
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回python吧
>0< 加载中...

【求助】tkinter,canvas,无法删除text

  • 只看楼主
  • 收藏

  • 回复
  • Zeja
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
# -*- coding: utf-8 -*-
import tkinter as tk
import time as tm
from PIL import ImageTk
import math as mt
import tkinter.messagebox as tkmsg
hour_len = 50
minute_len = 75
sec_len = 100
root = tk.Tk()
root.title('PyTimer')
root.geometry('400x400')
root.attributes('-alpha',0.8)
root.configure(background='#002FA7')
root.minsize(400,400)
root.maxsize(400,400)
canvas = tk.Canvas(root,width=400,height=400,bg='#002FA7')
canvas.pack()
#bg = ImageTk.PhotoImage(file='sources\\bgglasses.jpg')
#canvas.create_image(0,0,image=bg)
canvas.create_oval(50,50,350,350)
def setTime():
global entry
entry = tk.Entry(root)
entry.place(x=200-75,y=300)
global button_to_set
button_to_set = tk.Button(root,text='设定',command=helpSetTime)
button_to_set.place(x=200-20,y=320)
def helpSetTime():
global count_down
count_down = entry.get()
entry.place_forget()
button_to_set.place_forget()
try:
count_down_int = int(count_down)
except ValueError:
tkmsg.showerror('错误','请检查您的输入')
del(count_down)
try:
label_count_down
except NameError:
pass
else:
canvas.delete(label_count_down)
del(label_count_down)
else:
global count_down_hour,count_down_minute,count_down_sec,set_time_sec,set_time_minute,set_time_hour
count_down_hour = count_down_int // 3600
count_down_minute = (count_down_int % 3600) // 60
count_down_sec = count_down_int - (count_down_hour*3600) - (count_down_minute*60)
set_time_sec = sec
set_time_minute = minute
set_time_hour = hour
def handler():
global run
run = False
root.protocol('WM_DELETE_WINDOW',handler)
run = True
button = tk.Button(root,text='设定倒计时',command=setTime)
button.place(x=0,y=0)
while run:
global label_count_down
try:
label_count_down
except NameError:
pass
global sec,minute,hour
sec = tm.localtime(tm.time()).tm_sec
minute = tm.localtime(tm.time()).tm_min
hour = tm.localtime(tm.time()).tm_hour
if sec < 10:
sec_text = '0'+str(sec)
else:
sec_text = str(sec)
if minute < 10:
minute_text = '0' + str(minute)
else:
minute_text = str(minute)
angle_sec = mt.pi*3/2-2*mt.pi*(sec/60)
angle_minute = mt.pi*3/2-2*mt.pi*(minute/60)
if minute >= 12:
angle_hour = mt.pi*3/2-2*mt.pi*(hour-12)/12
elif minute < 12:
angle_hour = mt.pi*3/2-2*mt.pi*hour/12
hour_text = str(hour)
hour_hand = canvas.create_line(200,200,200-hour_len*mt.cos(angle_hour),200+hour_len*mt.sin(angle_hour))
minute_hand = canvas.create_line(200,200,200-minute_len*mt.cos(angle_minute),200+minute_len*mt.sin(angle_minute))
sec_hand = canvas.create_line(200,200,200-sec_len*mt.cos(angle_sec),200+sec_len*mt.sin(angle_sec))
label = canvas.create_text(200,250,text=hour_text+':'+minute_text+':'+sec_text,font=('微软雅黑',15),activefill='#FFD058',disabledfill='#FFD058')
canvas.update()
global time_exist
try:
count_down
except NameError:
time_exist = False
try:
label_count_down
except NameError:
pass
else:
canvas.delete(label_count_down)
else:
time_exist = True
#canvas.delete(label_count_down)
target_hour = set_time_hour+count_down_hour
target_minute = set_time_minute+count_down_minute
target_sec = set_time_sec+count_down_sec
if target_sec >= 60:
target_sec -= 60
target_minute += 1
if target_minute >= 60:
target_minute -= 60
target_hour += 1
label_count_down = canvas.create_text(200,300,text=str(target_hour)+':'+str(target_minute)+':'+str(target_sec),font=('微软雅黑',13))
if (set_time_hour+count_down_hour == hour)&(set_time_minute+count_down_minute == minute)&(set_time_sec+count_down_sec == sec):
#canvas.delete(label_count_down) 在这里应该删除label_count_down,但是没删
tkmsg.showinfo('时间到了','时间到了')
del(count_down)
del(label_count_down)
canvas.delete(hour_hand,minute_hand,sec_hand,label)
print(time_exist)
del(sec,minute,hour,angle_sec,angle_minute,angle_hour,hour_hand,minute_hand,sec_hand,label,hour_text,minute_text,sec_text)
root.destroy()
问题就是:‘#canvas.delete(label_count_down) 在这里应该删除label_count_down,但是没删’ 这句,把注释改掉之后无法在canvas上删除label_count_down,怎么破?感谢各位!


  • Zeja
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
截图





登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回python吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示