python tkinter實(shí)現(xiàn)屏保程序
本文實(shí)例為大家分享了python tkinter實(shí)現(xiàn)屏保程序的具體代碼,供大家參考,具體內(nèi)容如下
該腳本摘錄自:2014年辛星tkinter教程第二版
#!/usr/bin/env python from Tkinter import * from random import randint class RandomBall(object): def __init__(self, canvas, screenwidth, screenheight): self.canvas = canvas self.xpos = randint(10, int(screenwidth)) self.ypos = randint(10, int(screenheight)) self.xspeed = randint(6, 12) self.yspeed = randint(6, 12) self.screenwidth = screenwidth self.screenheight = screenheight self.radius = randint(40, 70) color = lambda : randint(0, 255) self.color = '#%02x%02x%02x' % (color(), color(), color()) def create_ball(self): x1 = self.xpos - self.radius y1 = self.ypos - self.radius x2 = self.xpos + self.radius y2 = self.ypos + self.radius self.itm = self.canvas.create_oval(x1, y1, x2, y2, fill=self.color, outline=self.color) def move_ball(self): self.xpos += self.xspeed self.ypos += self.yspeed if self.ypos >= self.screenheight - self.radius: self.yspeed = -self.yspeed if self.ypos <= self.radius: self.yspeed = abs(self.yspeed) if self.xpos >= self.screenwidth - self.radius or self.xpos <= self.radius: self.xspeed = -self.xspeed self.canvas.move(self.itm, self.xspeed, self.yspeed) class ScreenSaver: def __init__(self, num_balls): self.balls = [] self.root = Tk() w, h = self.root.winfo_screenwidth(), self.root.winfo_screenheight() self.root.overrideredirect(1) self.root.attributes('-alpha', 0.3) self.root.bind('<Key>', self.myquit) self.root.bind('<Motion>', self.myquit) self.canvas = Canvas(self.root, width=w, height=h) self.canvas.pack() for i in range(num_balls): ball = RandomBall(self.canvas, screenwidth=w, screenheight=h) ball.create_ball() self.balls.append(ball) self.run_screen_saver() self.root.mainloop() def run_screen_saver(self): for ball in self.balls: ball.move_ball() self.canvas.after(50, self.run_screen_saver) def myquit(self, event): self.root.destroy() if __name__ == "__main__": ScreenSaver(18)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 之pandas庫(kù)的安裝及庫(kù)安裝方法小結(jié)
Pandas 是一種開源的、易于使用的數(shù)據(jù)結(jié)構(gòu)和Python編程語(yǔ)言的數(shù)據(jù)分析工具,它與 Scikit-learn 兩個(gè)模塊幾乎提供了數(shù)據(jù)科學(xué)家所需的全部工具,今天通過本文給大家介紹Python 之pandas庫(kù)的安裝及庫(kù)安裝方法小結(jié),感興趣的朋友跟隨小編一起看看吧2022-11-11詳解Python小數(shù)據(jù)池和代碼塊緩存機(jī)制
這篇文章主要介紹了詳解Python 小數(shù)據(jù)池和代碼塊緩存機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04Django密碼系統(tǒng)實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Django密碼系統(tǒng)實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07python調(diào)用win32接口進(jìn)行截圖的示例
這篇文章主要介紹了python調(diào)用win32接口進(jìn)行截圖的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11python之基數(shù)排序的實(shí)現(xiàn)
這篇文章主要介紹了python之基數(shù)排序的實(shí)現(xiàn),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07使用Python和GDAL給圖片加坐標(biāo)系的實(shí)現(xiàn)思路(坐標(biāo)投影轉(zhuǎn)換)
這篇文章主要介紹了使用Python和GDAL給圖片加坐標(biāo)系的實(shí)現(xiàn)思路(坐標(biāo)投影轉(zhuǎn)換),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Python使用cx_Oracle模塊操作Oracle數(shù)據(jù)庫(kù)詳解
這篇文章主要介紹了Python使用cx_Oracle模塊操作Oracle數(shù)據(jù)庫(kù),結(jié)合實(shí)例形式較為詳細(xì)的分析了cx_Oracle模塊的下載、安裝及針對(duì)Oracle數(shù)據(jù)庫(kù)的連接、執(zhí)行SQL語(yǔ)句、存儲(chǔ)過程等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05