Python实现点击图片计时功能

from tkinter import *
import tkinter as tk
from PIL import Image,ImageTk
import os
import tkinter.messagebox
import time

master = Tk()

Label(master, text="请输入场景数").grid(row=0, column=0,sticky=W,padx=5, pady=5)

e1 = Entry(master)
e1.grid(row=0, column=1)

timestr = tkinter.StringVar()   #创建可变数据类型
timestr.set('0:0')   #只能数值不能等于号

running = False    #计时器工作状态
starttime = 0      #开始计时时间
elapsedtime = 0.0    #计时器统计到的时间
timer = None

# 声明函数
def warning():
    # 弹出对话框
    result = tkinter.messagebox.showwarning(title = 'warning',message='Please input less than 9 or you can add more images')
    # 返回值为:ok
    print(result)

def update():
    global elapsedtime
    global timestr
    global timer
    elapsedtime = time.time() - starttime
    elapsedtime=round(elapsedtime,4)
    timestr.set(elapsedtime)
    timer = master.after(50, update)

def start(self):
    global running  #全局变量
    global starttime
    if not running:
        starttime = time.time() - elapsedtime
        running = True
        update()
        pass

def stop(self):
    global running
    global timer
    if running:
        master.after_cancel(timer)
        elapsedtime = time.time() - starttime
        timestr.set(elapsedtime)
        running = False
        pass

# 记录button按下的次数
labelArray=[]
buttonArray=[]

def cbClicked(label):
    # print(label)
    start()
    msg.showinfo('您点击了', label)

def getTextInput():
    text=e1.get() #获取文本框内容
    print(text)
    fileDir='./resource/'
    pathDir = os.listdir(fileDir)    #取图片的原始路径
    if text.isdigit():
        cnt=int(float(text))
        if(cnt>8):
            print('Please input less than 9 or you can add more images')
            # 添加按钮
            # btn1 = tkinter.Button(master,text = 'warning',command = warning)
            # btn1.grid(row=2, column=0, sticky=W, padx=5, pady=5)
            return
        
        row=2
        column=0
        for i in range(1,cnt+1):
            labeli=Label(textvariable=timestr, fg="black", font=("微软雅黑", 30, "bold")).grid(row=row, column=column, sticky=W, padx=50, pady=5)
            labelArray.append(labeli)
            column+=1
            if(column>3):
                column=0
                row+=1
        
        row+=1
        column=0
        for i in range(1,cnt+1):
            imgPath=fileDir+str(i)+'.gif'
            print(imgPath)
            photo = PhotoImage(file=imgPath)
            label = Label(image=photo)
            label.image = photo
            # # button=Button(master, image=photo, command=start).grid(row=row, column=column, sticky=W, padx=5, pady=5)
            # buttonArray.append(button)
            button=Button(master, image=photo)
            button.grid(row=row, column=column, sticky=W, padx=5, pady=5)
            # print(type(Button(button)))
            button.bind("<Button-1>", start)
            button.bind("<Button-3>", stop)
            # buttonArray.append(button)
            column+=1
            if(column>3):
                column=0
                row+=1
        
        # for btn in buttonArray2:
        #     print(type(btn))
        #     btn.grid(row=row, column=column, sticky=W, padx=5, pady=5)
        #     btn.bind("<Button-1>", start)
        

button = Button(master, text='选择背景',command=getTextInput)
button.grid(sticky=W,padx=5, pady=5)

master.title('Sample')
master.geometry("1080x800")  # 窗口大小
mainloop()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值