import time
import tkinter
import random
from threading import Thread
run = True
a = tkinter.Tk()
a.geometry('1920x1060')
def m():
for d in range(60*60*8): # 此程序最多运行8个小时
b = random.Random()
c = b.randint(1, 1000) # 随机数控制圆的数量
yuan = tkinter.Canvas(a, width=1920, height=1060) # 设置画布大小
yuan.pack()
for i in range(c):
x1 = b.randint(1, 1920)
y1 = b.randint(1, 1060)
c1 = b.randint(0, 255)
c2 = b.randint(0, 255)
c3 = b.randint(0, 255)
c4 = "#%02x%02x%02x" % (c1, c2, c3) # 设置圆的颜色
yuan.create_oval(x1, y1, x1+5, y1+5, fill=c4) # 绘制圆
time.sleep(3)
yuan.destroy()
def m1():
global run
run = True
yx = Thread(target=m, args=())
yx.start()
if not run:
yx.join()
m1()
a.mainloop()
本文主要通过随机函数random与tkinter组件结合,在窗体上随机位置显示随机数量随机颜色的圆
c代表圆生成的数量
c4代表圆的颜色
x1,y1代表圆的坐标
其中第一层for d in range(60*60*8)控制程序运行时间
tkinter.Canvas绘制画布,因为tkiner里没有直接可用的圆形组件
yuan.create_oval,绘制圆
create_oval(x0, y0, x1, y1, options) | 1. 绘制一个圆形或椭圆形; 2. 参数 x0 与 y0 定义绘图区域的左上角坐标;参数 x1 与 y1 定义绘图区域的右下角坐标; 3. 参数 options 表示其他可选参数,本案例以fill为参照 |
画布显示3秒后进行yuan.destroy(),销毁画布并重新创建,否则本程序运行只会显示第一次随机数运行的结果