点击结束,可以不直接退出,窗口还在的计时器

# -*- coding:utf-8 -*-

#点击结束,但是不直接退出的计时器

from tkinter import *


running = True
def counting():    #定义Counting函数
    global counter
    global running
    if running==True:
        counter += 1
        digit.config(text=str(counter))
        digit.after(1000, counting)



def run_counter(digit):
    counting()
def stop():        #定义一个停止的函数
    global running
    running = False
counter=0
root=Tk()
root.title("HelloMykitty")
digit=Label(root,bg="yellow",fg="blue",height=3,width=10,font="Helvetic 20 bold")
digit.pack()
run_counter(digit)
Button(root,text="结束",width=15,command=stop).pack(pady=10)
root.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 首先,你需要在 EasyX 中创建一个窗口来显示你的钟表。可以使用 `initgraph` 函数创建窗口,例如: ```c #include <graphics.h> int main() { initgraph(640, 480); // 创建一个 640x480 的窗口 return 0; } ``` 接下来,你需要使用 EasyX 的绘图函数来绘制钟表。你可以使用 `circle` 函数绘制一个圆形表盘,然后在表盘中心绘制时针、分针和秒针的指针。 ```c #include <graphics.h> #include <math.h> int main() { initgraph(640, 480); // 绘制表盘 int x = 320, y = 240, r = 200; circle(x, y, r); // 绘制时针 int hour = 3; // 假设当前时间是 3 点 double angle = (hour / 12.0) * 2 * M_PI - M_PI / 2; int hx = x + cos(angle) * r * 0.5, hy = y + sin(angle) * r * 0.5; line(x, y, hx, hy); // 绘制分针 int minute = 30; // 假设当前时间是 30 分钟 angle = (minute / 60.0) * 2 * M_PI - M_PI / 2; int mx = x + cos(angle) * r * 0.7, my = y + sin(angle) * r * 0.7; line(x, y, mx, my); // 绘制秒针 int second = 0; // 假设当前时间是整点 angle = (second / 60.0) * 2 * M_PI - M_PI / 2; int sx = x + cos(angle) * r * 0.9, sy = y + sin(angle) * r * 0.9; line(x, y, sx, sy); getchar(); closegraph(); return 0; } ``` 最后,你需要使用 EasyX 的计时器函数来实现倒计时功能。可以使用 `timeGetTime` 函数获取当前时间,然后计算出剩余时间,并在窗口中显示出来。 ```c #include <graphics.h> #include <math.h> int main() { initgraph(640, 480); int x = 320, y = 240, r = 200; while (1) { // 绘制表盘和指针 // ... // 计算剩余时间 int start_time = 46000; // 从 46 秒开始倒计时 int elapsed_time = timeGetTime() - start_time; int remaining_time = 46000 - elapsed_time; if (remaining_time < 0) remaining_time = 0; // 显示剩余时间 settextcolor(WHITE); setbkmode(TRANSPARENT); settextstyle(20, 0, _T("Consolas")); TCHAR str[10]; _stprintf_s(str, _T("%d"), remaining_time / 1000); outtextxy(x - 20, y - 20, str); if (remaining_time == 0) break; Sleep(100); cleardevice(); } getchar(); closegraph(); return 0; } ``` 这个程序会在窗口中显示一个钟表,并从 46 秒开始倒计时。当倒计时结束后,程序会退出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值