tkinter 的兩個例子


第一個例子:after

用於定時操作

import tkinter as tk
import time

class MyApp(tk.Frame):
    def __init__(self, msecs=1000):
        super().__init__()
        self.pack()
        
        self.msecs = msecs
        
        self.utc_time = tk.Label(self, text='', bg='navy', fg='white')
        self.utc_time.pack()
        self.cst_time = tk.Label(self, text='', bg='navy', fg='white')
        self.cst_time.pack()
        
        self.repeater()
        
    def repeater(self):
        self.utc_time.config(text= 'UTC: ' + time.strftime('%Y/%m/%d %H:%M:%S',time.gmtime()))
        self.cst_time.config(text= 'CST: ' + time.strftime('%Y/%m/%d %H:%M:%S',time.localtime()))
        
        self.after(self.msecs, self.repeater)        


if __name__ == '__main__': 
    MyApp(msecs=1000).mainloop()

效果圖:

第二個例子:pack_forget

用於切換窗口部件的顯示、隱藏

import tkinter as tk

class MyApp(tk.Frame):
    def __init__(self):
        super().__init__()
        self.pack()
        
        # 兩個按鈕
        self.rowframe = tk.Frame(self)
        self.rowframe.pack(fill='x')
        self.btn2 = tk.Button(self.rowframe, text='按鈕2') # , command=self.update
        self.btn2.pack(side=tk.RIGHT)
        self.btn1 = tk.Button(self.rowframe, text='按鈕1')
        self.btn1.pack(side=tk.RIGHT)
        
        self.btn1.bind('<Button-1>', self.update)
        self.btn2.bind('<Button-1>', self.update)
        
        
    # 測試pack_forget
    def update(self, event):
        #print(dir(event))
        if event.widget == self.btn1:
            self.btn1.forget()
            self.btn2.pack(side=tk.RIGHT)
        else:
            self.btn2.pack_forget() # 故意的
            self.btn1.pack(side=tk.RIGHT)
        

if __name__ == '__main__': 
    MyApp().mainloop()

效果圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM