Thanks for your quick answer. Hmm, I never thought that didn’t have to use a
global variable.
When you mentioned time.localtime() method, did you mean that I should convert
the time to numbers and then write an if statement?
Like, say that I make 1 hour equivalent to the integear clock= 1. Then I write
an if statement that says that the computer should print “Hi”
if clock>1:
print (“hi”)
Did I understand that correctly?
Thanks for your answers!
Mic
From: Wayne Werner
Sent: Wednesday, November 16, 2011 5:17 PM
To: Mic
Cc: tutor@python.org
Subject: Re: [Tutor] Clock in tkinter?
On Wed, Nov 16, 2011 at 9:28 AM, Mic <o0m...@hotmail.se> wrote:
Hi!
It is no homework, in fact am I working ahead of class. I have now, after
five minutes thinking, solved my problem, but a new problem has risen.
But to begin with, here is how I solved the problem:
from tkinter import*
import time
the_time=''
class Window(Frame):
def __init__(self,master):
super(Window,self).__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
#Create a hello button:
hej=self.hellobttn=Button(self,text="Hey")
self.hellobttn.grid(row=0, column=0)
#Create a label that displays time:
self.display_time=Label(self, text=the_time)
self.display_time.grid(row=0, column=1)
def change_value_the_time():
global the_time
newtime = time.strftime('%H:%M:%S')
if newtime != the_time:
the_time= newtime
self.display_time.config(text=the_time, font="40")
self.display_time.after(20, change_value_the_time)
If you're going to put a function inside your class (since you're using self in
there, I'm sure that's what you meant to do), you should change it to:
def change_value_the_time(self):
and call it with
self.display_time.after(20, self.change_value_the_time)
But your program also has unnecessary code. First, since you have a class then
instead of using a global, you should simply declare `self.the_time = ''` in
your __init__ for your class.
Personally, I would have written the function more like this:
def update_time(self):
self.display_time.config(text=time.strftime('%H:%M:%S'), font='40')
self.after(20, self.update_time)
Then at the end of my __init__ function I would call self.update_time()
I'm not sure how that will work with your current setup, though.
I found some help on the internet about making a clock, although I had to
modify a lot of the code to fit my own code and window.
Now to my next question. Say that I want a text “Hi, how are you?” to be
printed when the time passes 15:00:00 each day. How do I do that?
At first I thought that I could just write an if statement. Like:
if the_time>15:00:00:
print (“Hi, how are you?”)
But it is obviously not working.
You can write one very similar to that. Take a look at the time.localtime
method.
Thank you for your help! Another question, am I supposed to add
tutor@python.org; as copy? You did that, right?
Yes - if you click "reply to all" in your email client, that will automatically
send it to tutor@python.org
HTH,
Wayne
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor