2017-09-19 1 views
1

Also im Grunde mache ich ein Schulprojekt und es beinhaltet Klassen und tkinter, ich möchte meine Tick() -Funktion in die Klasse, so dass ich haben kann eine Uhr in meinem Programm, aber ich kann es nicht funktionieren, wenn ich es zu einer Klasse hinzufüge?Wie zu verwenden tick() in einer Klasse [Python 3.x]

Jede Hilfe/Beratung wäre willkommen.

import urllib.request 
from tkinter import * 
from tkinter import ttk 
import time 


class MainWindow(object): 
    def __init__(self): 
     self.root = Tk() 
     self.root.state("zoomed") #to make it full screen 
     self.root.title("Vehicle Window Fitting - Management System") 
     self.root.configure(bg="grey80") 

     self.frame_1 = Frame(self.root, width=1350, height=50) 
     self.frame_1.pack(side=TOP, fill=X, expand=1, anchor=N) 

     self.title_lbl = Label(self.frame_1, font=('arial', 12, 'bold'), text="Vehicle Window Fitting - Management System", bd=5, anchor=W) 
     self.title_lbl.pack(side=LEFT) #puts title on left side 

     self.clockFrame = Frame(self.frame_1, width=100, height=50, bd=4, relief="ridge") 
     self.clockFrame.pack(side=RIGHT)#puts clock frame on right 
     self.clockLabel = Label(self.clockFrame, font=('arial', 12, 'bold'), bd=5, anchor=E) 
     self.clockLabel.pack() #puts the number in the clock frame 

    def tick(self, curtime=''): #acts as a clock, changing the label when the time goes up 
     newtime = time.strftime('%H:%M:%S') 
     if newtime != curtime: 
      curtime = newtime 
      self.clockLabel.config(text=curtime) 
     self.clockLabel.after(200, tick, curtime) 

(mehr Code hier aber nicht relevant) dann:

window = MainWindow() 
clock = window.tick() 

Alles ist korrekt an Ort und Stelle, aber die Uhr ändert sich nicht stationär ist. Ich habe es geschafft, es außerhalb einer Klasse arbeiten zu lassen, aber wie implementiere ich es in eine Klasse?

Antwort

1

fixiert

self.clockLabel.after(200, tick, curtime) 

zu

self.clockLabel.after(200, self.tick, curtime) 

mich Wechsel dauerte eine lange Zeit, dass man, um herauszufinden, haha ​​