Python的GUI编程小实例(Tkinter模块)(下)

紧接着上次的文章,再分享小实例。

简易电子闹钟:

import tkinter
import threading
import datetime
import time

app = tkinter.Tk()
app.overrideredirect(True)
app.attributes('-alpha', 0.9)
app.attributes('-topmost', 1)
app.geometry('110x25+100+100')
labelDateTime = tkinter.Label(app)
labelDateTime.pack(fill=tkinter.BOTH, expand=tkinter.YES)
labelDateTime.configure(bg='gray')

X = tkinter.IntVar(value=0)
Y = tkinter.IntVar(value=0)
canMove = tkinter.IntVar(value=0)
still = tkinter.IntVar(value=1)

def onLeftButtonDown(event):
    app.attributes('-alpha')
    X.set(event.x)
    Y.set(event.y)
    canMove.set(1)
labelDateTime.bind('<Button-1>', onLeftButtonDown)

def onLeftButtonUp(event):
    app.attributes('-alpha', 0.9)
    canMove.set(0)
labelDateTime.bind('<ButtonRelease-1>', onLeftButtonUp)

def onLeftButtonMove(event):
    if canMove.get() == 0:
        return
    newX = app.winfo_x() + (event.x-X.get())
    newY = app.winfo_y() + (event.y-Y.get())
    g = '110x25+' +str(newX) + '+' +str(newY)
    app.geometry(g)
labelDateTime.bind('B1-Motion', onLeftButtonMove)

def onRightButtonDown(event):
    still.set(0)
    t.join(0.2)
    app.destroy()
labelDateTime.bind('<Button-3>', onRightButtonDown)

def nowDateTime():
    while still.get()==1:
        now = datetime.datetime.now()
        s = str(now.year) + '-' + str(now.month) + '-' + str(now.day) + ''
        s = s+str(now.hour) + ':' + str(now.minute) + ':' + str(now.second)
        labelDateTime['text'] = s
        time.sleep(0.2)
t = threading.Thread(target=nowDateTime)
t.daemon = True
t.start()

app.mainloop()

运行结果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Lic5b6355qE5Yas5aSp5LiA54mH5rex5oOF,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值