tkinter canvas画表盘
时间: 2023-07-13 19:35:38 浏览: 260
好的,这里是一个简单的表盘画法示例,使用了Tkinter的Canvas组件:
```
import math
import tkinter as tk
# 创建画布并设置大小
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.pack()
# 画表盘外圆
canvas.create_oval(50, 50, 250, 250)
# 画刻度线和数字
for i in range(1, 13):
angle = math.pi/6 * i
x1 = 150 + 100 * math.cos(angle)
y1 = 150 - 100 * math.sin(angle)
x2 = 150 + 120 * math.cos(angle)
y2 = 150 - 120 * math.sin(angle)
canvas.create_line(x1, y1, x2, y2)
canvas.create_text(x2, y2, text=str(i))
# 获取当前时间并计算指针位置
time = '13:30:45'
hour, minute, second = map(int, time.split(':'))
hour_angle = math.pi/6 * (hour % 12) + math.pi/360 * minute
minute_angle = math.pi/30 * minute
second_angle = math.pi/30 * second
# 画时针
x = 150 + 60 * math.cos(hour_angle)
y = 150 - 60 * math.sin(hour_angle)
canvas.create_line(150, 150, x, y, width=5, fill='red')
# 画分针
x = 150 + 80 * math.cos(minute_angle)
y = 150 - 80 * math.sin(minute_angle)
canvas.create_line(150, 150, x, y, width=3, fill='blue')
# 画秒针
x = 150 + 90 * math.cos(second_angle)
y = 150 - 90 * math.sin(second_angle)
canvas.create_line(150, 150, x, y, width=1, fill='green')
# 运行主循环
root.mainloop()
```
这个示例会创建一个300x300的画布,并在中心画一个直径为200的圆形表盘,然后画上12个刻度线和数字。最后根据当前时间计算时针、分针和秒针的位置,用不同颜色的线条画出来。
你可以根据需要调整表盘大小和颜色、指针长度和粗细等参数,来实现自己想要的效果。
阅读全文