python如何實(shí)現(xiàn)屏保程序-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)python如何實(shí)現(xiàn)屏保程序的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、小程序開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!

開始

首先:我們使用的是python自帶的GUI模塊,大部分操作網(wǎng)上都可以查到,對(duì)于寫一些小的交互程序是完全夠了。首先我們來(lái)定義一個(gè)類,這個(gè)類可以實(shí)列出一個(gè)屏幕顯示對(duì)象,我把它稱為Screensaver()。

from tkinter import *
import tkinter.font as tkFont # 導(dǎo)入了一個(gè)字體

class Screensaver():
 txt_1 = [] # 用來(lái)儲(chǔ)存實(shí)例對(duì)象
 i = 1 # 用于后期判斷是否更新單詞表
 def __init__(self):
 self.win = Tk() # 基于tkiner中的Tk()方法實(shí)例個(gè)對(duì)象
 self.ft = tkFont.Font(family='Fixdsys', size=30, weight=tkFont.BOLD) # 修改字體的方法
 self.width = self.win.winfo_screenwidth() # 獲取屏幕大小
 self.height= self.win.winfo_screenheight()
 
 self.win.overrideredirect(1) # 全屏設(shè)置
 self.win.attributes('-alpha',0.3) # 以參數(shù)alpha的方式設(shè)置透明度


 # 綁定事件
 self.win.bind('<Any-Button>',self.exit_screensaver) # 單擊鼠標(biāo)即彈出
 self.canvas=Canvas(self.win,width=self.width,height=self.height,bg='#00FFFF')
 self.canvas.pack()

 self.win.mainloop()

 def exit_screensaver(self,event): # 這里必須要個(gè)參數(shù)event
 self.win.destroy()

Screensaver() # 實(shí)例化

運(yùn)行結(jié)果:

python如何實(shí)現(xiàn)屏保程序

可以看到,屏幕有透明的一層,這就是我們實(shí)例化的對(duì)象,它以cavans(畫布的形式),類似于photoshop里面的畫層一樣,可以在上面不斷疊加畫層。

接下來(lái),我們要?jiǎng)?chuàng)建文字類:Text_screen(),用它來(lái)創(chuàng)建文字,并使其能移動(dòng)文字和創(chuàng)建文字。

class Text_screen():
 list_box = [i for i in range(20,1080,50)] # 22 個(gè)個(gè)數(shù),分別代表屏幕的高度位置
 i = 0 # 用來(lái)在高度上取值
 def __init__(self,canvas,ft,width,height,text_1):
 self.canvas = canvas
 self.ft = ft
 self.text_1 = text_1
 self.x_pos = width
 self.x_move = -1
 self.create_text()

 def create_text(self): # 創(chuàng)建方法
 self.x1 = self.x_pos-100
 self.item = self.canvas.create_text(self.x1,self.list_box[Text_screen.i],text=self.text_1,font=self.ft,fill='red',anchor=NW)
 if Text_screen.i == len(Text_screen.list_box)-1:
  Text_screen.i = 0
 else: Text_screen.i += 1

 def move_text(self): # 移動(dòng)文字
 self.canvas.move(self.item, self.x_move,0)
 self.x1 += self.x_move

最后

我們來(lái)整合著兩個(gè)類:
在Screensaver()類中添加三個(gè)函數(shù):

 def birth_list(self): #生成文字,
 i = randint(0,2064)
 self.str_text = linecache.getlines('six.txt')[i:i+21] # 這里需要導(dǎo)入模塊:linecache,并且這里的文件是單詞文本,要注意它的編碼格式。
 if self.i == 1:
  for my_text in self.str_text:
  txt = Text_screen(self.canvas,self.ft,self.width,self.height,my_text)
  self.list_.append(txt)
 else: pass
 def exit_screensaver(self,event): # 這里必須要個(gè)參數(shù)event
 self.win.destroy()

 def run_screensaver(self): # 循環(huán)體 ,不斷更新屏幕內(nèi)容
 if self.i == 1:
  for emumt in self.list_:
  emumt.move_text()
  if emumt.x1<= -30:
   emumt
   self.i = -1
   self.delect()
   self.list_ =[]
   self.birth_list()
   for my_text in self.str_text:
   txt = Text_screen(self.canvas,self.ft,self.width,self.height,my_text)
   self.list_.append(txt)
   break
 else:
  self.i *= -1
 self.canvas.after(1,self.run_screensaver) # 第一個(gè)參數(shù)是間隔事件吧?第二個(gè)是調(diào)用函數(shù)

 def delect(self):# 不斷的刪除屏幕對(duì)象
 for em in self.list_:
  self.canvas.delete(em.item)

這里我們就講完所有的步驟了,大致的運(yùn)行結(jié)果如圖:

python如何實(shí)現(xiàn)屏保程序

需要注意的是:這里的單詞是我在網(wǎng)上下的,如果下載好的六級(jí)單詞,不是utf格式的需要使用記事本 -> 另存為 -> 選擇格式。

總結(jié)

缺點(diǎn):

1、這里面的代碼可以簡(jiǎn)練很多的,最近沒(méi)時(shí)間去看,只是粗略的完成了效果,希望大家多多指教。
2、可能對(duì)于cpu的消耗有點(diǎn)大,正如上所說(shuō),完全可以簡(jiǎn)化代碼。
3、請(qǐng)大家多多指點(diǎn)。

感謝各位的閱讀!關(guān)于“python如何實(shí)現(xiàn)屏保程序”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章名稱:python如何實(shí)現(xiàn)屏保程序-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article44/ipehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航虛擬主機(jī)、定制開發(fā)域名注冊(cè)、網(wǎng)站設(shè)計(jì)公司響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)