0

我刚开始学习树莓派的开发。我想在 TKinter 中开发一个应用程序,它显示从当前日期时间到固定结束日期时间的倒计时。我在哪里可以找到与此相关的示例源代码。还有哪些其他选项可用于为树莓派开发基于 GUI 的应用程序。

4

2 回答 2

0

这里实现了一个计时器:How to create a timer using tkinter? . 您应该能够对其进行修改以满足您的需求。

关于你的第二个问题,我建议坚持使用 Tkinter :它是一个简单轻量级的 GUI 框架,但功能非常强大。EasyGUI 是另一个简单的框架,但我觉得它有点限制。最后,根据您的发行版,您始终可以将您的 GUI 绑定到 OS 桌面环境:PyGnome、PyKDE、...(只需避免使用内存怪物的 Qt 和 WxWidgets)。

此处的列表:http ://wiki.python.org/moin/GuiProgramming

于 2013-08-25T11:13:02.890 回答
0

给你。

import Tkinter as TK
import datetime

class countdown:
    def __init__(self, master, time):   # time in mm/dd/yy hh:mm:ss format
        self.master = master
        self.frame = TK.Frame(self.master)
        self.targetTime = datetime.datetime.strptime(time, "%m/%d/%y %H:%M:%S")
        self.timeRemainingLabel = TK.Label(self.frame)
        self.startButton = TK.Button(self.frame, text="Start countdown", command=lambda:self.master.after(1000, self.update))
        self.endTimeLabel = TK.Label(self.frame, text="Target time in mm/dd/yy hh:mm:ss format:")
        self.endTimeEntry = TK.Entry(self.frame)
        self.endTimeEntry.insert(0, time)
        self.frame.grid()
        self.timeRemainingLabel.grid(row=1,column=1, columnspan=3)
        self.startButton.grid(row=2, column=1, rowspan=2)
        self.endTimeLabel.grid(row=2, column=2)
        self.endTimeEntry.grid(row=3, column=2)

    def update(self):
        remaining = self.targetTime-datetime.datetime.now()
        daysRemaining = remaining.days
        hoursRemaining = int(remaining.seconds) / 3600
        minutesRemaining = int(remaining.seconds % 3600) / 60
        secondsRemaining = int(remaining.seconds % 60)
        self.timeRemainingLabel.config(text="Time remaining until {targetTime}:\n*** {days} days {hours} hrs {minutes} min {seconds} sec ***".format(targetTime=datetime.datetime.strptime(self.endTimeEntry.get(), "%m/%d/%y %H:%M:%S"), days=daysRemaining, hours=hoursRemaining, minutes=minutesRemaining, seconds=secondsRemaining))
        self.master.after(1000, self.update)

root = TK.Tk()
c = countdown(root, "08/31/13 01:01:01")
root.mainloop()

图片:

在此处输入图像描述

于 2013-08-26T04:48:09.830 回答