用多线程写一个电子手表
时间: 2023-07-01 19:21:30 浏览: 192
好的,我可以为您提供一个简单的多线程电子手表示例程序。该程序使用Python语言编写,需要安装Tkinter和datetime库。
```python
import tkinter as tk
import datetime
import threading
class ClockThread(threading.Thread):
def __init__(self, clock):
threading.Thread.__init__(self)
self.clock = clock
self._stop_event = threading.Event()
def stop(self):
self._stop_event.set()
def run(self):
while not self._stop_event.is_set():
now = datetime.datetime.now()
self.clock.update_time(now)
self.clock.update_display()
self._stop_event.wait(1)
class Clock(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.create_widgets()
self.time = None
self.thread = None
def create_widgets(self):
self.time_label = tk.Label(self, font=('Helvetica', 48, 'bold'))
self.time_label.pack(padx=10, pady=10)
def start(self):
self.thread = ClockThread(self)
self.thread.start()
def stop(self):
self.thread.stop()
def update_time(self, time):
self.time = time
def update_display(self):
if self.time is not None:
time_str = self.time.strftime('%H:%M:%S')
self.time_label.config(text=time_str)
root = tk.Tk()
root.title('Digital Clock')
clock = Clock(root)
clock.start()
root.mainloop()
```
该程序创建一个名为Clock的类,该类表示数字时钟的UI和逻辑。ClockThread类是一个单独的线程,负责每秒更新时间和UI。Clock类的start方法启动线程,stop方法停止线程。update_time方法更新时间,update_display方法更新UI。
要运行该程序,请确保已安装Tkinter和datetime库,然后运行Python解释器并运行程序文件。您将看到一个数字时钟界面,它将每秒更新一次。
阅读全文