Eine Funktion von Zeit zu Zeit aufrufen

Fragen zu Tkinter.
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

Eine Funktion von Zeit zu Zeit aufrufen

Beitragvon Dexter1997 » Freitag 15. Dezember 2017, 12:39

Ich habe ein Programm geschrieben, dass bei Klick auf einen Knopf Geld erzeugt.
Jetzt soll pro Sekunde die Variable money erhöht werden. Wie erreiche ich das?

Code: Alles auswählen

from tkinter import *

money = 0
label2_added = False

def el(event):
   global money, label2, label2_added
   money += 1
   label["text"] = money

   if money == 10 and label2_added == False:
      label2.pack()
      #label2_added == True
      print("label2 added")



root = Tk()

label = Label(root, text=str(money))
label.pack()
button = Button(root, text="klick me")
button.bind("<Button>", el)
button.pack()

label2 = Label(root, text="Wonderful")

root.mainloop()
Sirius3
User
Beiträge: 7052
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Eine Funktion von Zeit zu Zeit aufrufen

Beitragvon Sirius3 » Freitag 15. Dezember 2017, 13:15

@Dexter1997: nicht dass die Frage hier schon tausend mal beantwortet wurde, zuletzt hier: Aktuelle Werte in Label.
Benutzeravatar
wuf
User
Beiträge: 1368
Registriert: Sonntag 8. Juni 2003, 09:50

Re: Eine Funktion von Zeit zu Zeit aufrufen

Beitragvon wuf » Freitag 15. Dezember 2017, 21:43

Hi Dexter1997

Hier eine leicht angepasste Variante:
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. try:
  5.     # Tkinter for Python 2.xx
  6.     import Tkinter as tk
  7. except ImportError:
  8.     # Tkinter for Python 3.xx
  9.     import tkinter as tk
  10.  
  11.  
  12. APP_TITLE = "Money Rising"
  13. APP_XPOS = 100
  14. APP_YPOS = 100
  15. APP_WIDTH = 300
  16. APP_HEIGHT = 150
  17.  
  18. INC_TIME = 1000
  19. LABEL_FONT = ('Helevetica', 30, 'bold')
  20. LABEL_FG_COLOR = 'green'
  21.  
  22.  
  23. class Application(tk.Frame):
  24.  
  25.     def __init__(self, parent, **kwargs):
  26.         self.parent = parent
  27.        
  28.         tk.Frame.__init__(self, parent, **kwargs)
  29.        
  30.         self.money = 0
  31.         self.money_flag = False
  32.         self.money_var = tk.StringVar()
  33.         tk.Label(self, textvariable=self.money_var, font=LABEL_FONT,
  34.             fg=LABEL_FG_COLOR).pack(expand=True, pady=4)
  35.         self.money_var.set(self.money)
  36.        
  37.         tk.Button(self, text="Rise the Money!", command=self.start_money_rising
  38.             ).pack()
  39.        
  40.     def start_money_rising(self):
  41.         if not self.money_flag:
  42.             self.money_flag = True
  43.             self.rise_money()
  44.        
  45.     def rise_money(self):
  46.         if self.money < 10:
  47.             self.money += 1
  48.             self.money_var.set(self.money)
  49.         else:
  50.             self.money_var.set("Wonderfull!")
  51.             self.money_flag = False
  52.             self.money = 0
  53.             return
  54.            
  55.         self.after(INC_TIME, self.rise_money)
  56.  
  57.        
  58. def main():
  59.     app_win = tk.Tk()
  60.     app_win.title(APP_TITLE)
  61.     app_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
  62.     app_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT))
  63.    
  64.     Application(app_win).pack(expand=True)
  65.    
  66.     app_win.mainloop()
  67.  
  68.  
  69. if __name__ == '__main__':
  70.     main()      
Gruss wuf :wink:
Take it easy Mates!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder