目錄
前言:
一、案例計數器
1、效果圖
2、代碼
3、解析
二、調優後效果
1、效果圖
編輯 2、代碼
3、解析
編輯 三、變裝為倒計時器
1、效果
2、代碼
3、解析
四、總結
最近偶爾有空抽出時間來學習python的GUI,又看到了尾大不掉的tkinter,然後CSDN官方也把它地位拉的很高。然後給出了這幾點理由。
1、kinter有一個與生俱來的優勢:無需安裝就可以直接使用
2、相較於wx或Qt多如牛毛的控件和組件,Tk只用十幾個控件就可以滿足幾乎所有的應用需求
其實確實簡單,有基礎的同學,大概花個1小時就又能融會貫通了。哈哈哈,話不多說,進入正題,來說說今天的計數器和倒計時器是怎麼反轉的。
還是使用我們的3點定位法,效果圖+代碼+解析來唠唠哈。
就是一個按鈕加上一個會動的數字,你每次點擊按鈕就會加1,默認從0開始。真是簡單粗暴~
from tkinter import *
class MyApp(Tk):
"""繼承Tk,創建自己的桌面應用程序類"""
def __init__(self):
"""構造函數"""
super().__init__()
self.title('按鈕點擊計數器')
self.geometry('320x160')
#self.iconbitmap('res/Tk.ico')#圖標,如果不想用默認圖標就改了它
self.counter = IntVar() # 創建一個整型變量對象
self.counter.set(0) # 置其初值為0
label = Label(self, textvariable=self.counter, font=("Arial Bold", 50)) # 將Label和整型變量對象關聯
label.pack(side='left', expand='yes', fill='both', padx=5, pady=5)
btn = Button(self, text='點我試試看', bg='#90F0F0')
btn.pack(side='right', anchor='center', fill='y', padx=5, pady=5)
btn.bind(sequence='<Button-1>', func=self.on_button) # 綁定事件和事件函數
def on_button(self, evt):
"""點擊按鈕事件的響應函數, evt是事件對象"""
self.counter.set(self.counter.get() + 1)
if __name__ == '__main__':
app = MyApp()
app.mainloop()
可以自定義初始值,按你想去的樓層步步高升,哈哈哈
from tkinter import *
import time
class MyApp(Tk):
def __init__(self):
super().__init__()
self.title('這是一個計數器')#設置標題
self.geometry('380x160')#設置畫布大小
self.iconbitmap('res\Tk.ico')#設置應用圖標
self.count_num=IntVar()#創建一個Intvar變量
self.count_num.set(a)#初始化計數器為輸入的倒計時數
lable=Label(self,textvariable=self.count_num,font=('Arial Bold',50))
lable.pack(side='left',padx=5,pady=5,fill='both',expand='yes')
bth=Button(self,text='你點點看',bg='#1AA7Ec',fg='white')
bth.pack(side='right',pady=5,ipadx=5,fill='y',anchor='center')
bth.bind(sequence='<Button-1>',func=self.button_on)
def button_on(self,evt):
self.count_num.set(self.count_num.get()+1)
#time.sleep(2)
#self.destroy()
if __name__=='__main__':
a = int(input("請輸入計數器的初始值:"))#定義全局變量a,用於保存計數
app=MyApp()
app.mainloop()
from tkinter import *
import time
class MyApp(Tk):
def __init__(self):
super().__init__()
self.title('這是一個倒計時器')#設置標題
self.geometry('480x160')#設置畫布大小
self.iconbitmap('res\Tk.ico')#設置應用圖標
self.count_num=IntVar()#創建一個Intvar變量
self.count_num.set(a)#初始化計數器為輸入的倒計時數
lable=Label(self,textvariable=self.count_num,font=('Arial Bold',50))
lable.pack(side='left',padx=5,pady=5,fill='both',expand='yes')
bth=Button(self,text='你點點看',bg='#1AA7Ec',fg='white')
bth.pack(side='right',pady=5,ipadx=5,fill='y',anchor='center')
bth.bind(sequence='<Button-1>',func=self.button_on)#Button-1為鼠標左鍵單擊事件
def button_on(self,evt):
global a
if a>0:
self.count_num.set(self.count_num.get()-1)
print(a)
a=a-1
else:
self.count_num.set('倒計時結束')
print('倒計時結束!!')
#self.sleep()
#self.destroy()
if __name__=='__main__':
a = int(input("請輸入倒計時的數字:"))#定義全局變量a,用於保存計時數
app=MyApp()
app.mainloop()
上面計數器都是每次加1,我想當然也能每次減1了,比如我們比賽,放PPT開場的時候都會用到倒計時器,計數器好像可以用來較崽崽,學習1-100,學會1,然後點一下教他學2。修改後的關鍵代碼在button_on函數中。記得在引用全局變量a的時候記得,加上global。
好的,今天分享就到這裡,我們在學習的時候,可以舉一反三,這樣我們就會覺得學習突然有趣了起來,希望日進尺步,步步高。祝好,有不懂的歡迎留言討論。或者直接私信我~