Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
from PIL import Image,ImageTk
from random import random
class Application(object):
def __init__(self):
tk.Tk.__init__(self)
self.label_pil_img = Image.open('fortune.png')
self.label = tk.Label(self,root)
self.label.bind('<space>',self.start_rotate)
self.bind('<space>',self.start_rotate)
self.label.pack(expand=1,fill='both')
self.angle=0
self.img_dict = {}
self.angle_step = 0
self.load_angle = 0
self.step = 20
self.Button = tk.Button(self,root, text='START', font=("Helvetica bold", 80), command=self.start_rotate)
self.Button.pack()
self.Button.bind('<space>',self.start_rotate)
self.load_image()
self.label['image'] = self.img_dict[0]
self.load_images()
def start_rotate(self,event=None):
if not self.angle_step:
self.angle_step = 10
self.angle = self.angle// 10 * 10
self.img_rotate()
self.Button['state'] = 'disabled'
self.after(int(4500+random()*1000),self.wheel_stop)
def load_images(self):
if self.load_angle < 360:
self.load_image()
self.after(1,self.load_images)
def load_image(self):
self.img_dict[self.load_angle] = ImageTk.PhotoImage(self.label_pil_img.rotate(self.load_angle))
self.load_angle += 10
def img_rotate(self):
self.angle += self.angle_step
self.angle = self.angle % 360
if self.angle_step != 10:
self.img = ImageTk.PhotoImage(self.label_pil_img.rotate(self.angle))
self.label['image'] = self.img
if not (self.angle % 15):
self.angle_step = max(0,self.angle_step-1)
if self.angle_step:
self.after(self.step,self.img_rotate)
else:
self.Button['state'] = 'normal'
print(self.angle)
else:
if self.angle not in self.img_dict:
self.img_dict[self.angle] = ImageTk.PhotoImage(self.label_pil_img.rotate(self.angle))
self.label['image'] = self.img_dict[self.angle]
self.after(self.step,self.img_rotate)
def wheel_stop(self,event=None):
self.angle_step = 5
class Application_Gui(tk.Canvas):
def __init__(self, root):
tk.Canvas.__init__(self, root, highlightthickness=0)
canvas_width = 50
canvas_height =50
python_green = "black"
w = tk.Canvas(root, width=canvas_width, height=canvas_height,highlightthickness=0)
w.pack()
points = [0,25,canvas_width,canvas_height/2, 25, canvas_height]
w.create_polygon(points, outline=python_green,
fill='black', width=3)
def main():
root = tk.Tk()
root.title('WHEEL OF FORTUNE')
application_gui = Application_Gui(root)
application_gui.pack()
root.geometry("1200x815+0+0")
root.mainloop()
if __name__ == '__main__':
main()