BARRAUX Arthur
3 years ago
commit
1d190af7ce
3 changed files with 112 additions and 0 deletions
@ -0,0 +1,85 @@ |
|||
import tkinter |
|||
|
|||
class Terrain: |
|||
def __init__(self): |
|||
self.height = 15000//25 |
|||
self.width = 28000//25 |
|||
self.three_points = 6250//25 # rayon |
|||
self.middle_circle = 1800//25 # rayon |
|||
|
|||
|
|||
class Team: |
|||
def __init__(self): |
|||
self.players = ['arthur', 'jl', 'léandre', "louis", "alex"] |
|||
self.file = 'stat.txt' |
|||
self.posx, self.posy = 0,0 # coo de la dernière action |
|||
self.ac_player = 0 # dernier joueur |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
class Gui: |
|||
def __init__(self, ): |
|||
self.terrain = Terrain() |
|||
self.team = Team() |
|||
self.list_button_menu = [] |
|||
self.win = tkinter.Tk() |
|||
self.canvas = tkinter.Canvas(self.win, width=self.terrain.width, height=self.terrain.height, background='#bbb') |
|||
|
|||
self.canvas.pack() |
|||
|
|||
# menu contextuel des actions |
|||
self.action = tkinter.Menu(self.win, tearoff=0) |
|||
self.action.add_command(label='marque', command=lambda: self.action_menu('marque')) |
|||
self.action.add_command(label='rate', command=lambda: self.action_menu('rate')) |
|||
|
|||
|
|||
# Menu contextuel des joueurs |
|||
self.menu = tkinter.Menu(self.win, tearoff = 0) |
|||
self.menu.add_command(label=self.team.players[0], command=lambda: self.show_sub_menu(self.team.players[0])) |
|||
self.menu.add_command(label=self.team.players[1], command=lambda: self.show_sub_menu(self.team.players[1])) |
|||
self.menu.add_command(label=self.team.players[2], command=lambda: self.show_sub_menu(self.team.players[2])) |
|||
self.menu.add_command(label=self.team.players[3], command=lambda: self.show_sub_menu(self.team.players[3])) |
|||
self.menu.add_command(label=self.team.players[4], command=lambda: self.show_sub_menu(self.team.players[4])) |
|||
|
|||
|
|||
|
|||
def context_menu(self, event): |
|||
self.team.posx, self.team.posy = event.x, event.y |
|||
self.coo = [event.x_root, event.y_root] |
|||
self.menu.tk_popup(event.x_root, event.y_root) |
|||
self.menu.grab_release() |
|||
|
|||
def show_sub_menu(self, player): |
|||
self.team.ac_player = player |
|||
self.action.tk_popup(self.coo[0], self.coo[1]) |
|||
self.action.grab_release() |
|||
|
|||
def action_menu(self, action): |
|||
if action == 'marque': |
|||
self.canvas.create_oval(self.team.posx-12, self.team.posy-12, self.team.posx+12, self.team.posy+12, fill='green') |
|||
# with open('stat.txt', 'a') as f: |
|||
|
|||
else: |
|||
self.canvas.create_oval(self.team.posx-12, self.team.posy-12, self.team.posx+12, self.team.posy+12, fill='red') |
|||
|
|||
def draw_terrain(self): |
|||
# ligne des 3 points |
|||
self.canvas.create_arc(-self.terrain.three_points, self.terrain.height//2 - self.terrain.three_points, self.terrain.three_points, self.terrain.height - (self.terrain.height//2 - self.terrain.three_points),width=3, start=90, extent=-180) |
|||
self.canvas.create_arc(self.terrain.width-self.terrain.three_points, self.terrain.height//2 - self.terrain.three_points, self.terrain.width+self.terrain.three_points, self.terrain.height - (self.terrain.height//2 - self.terrain.three_points),width=3, start=90, extent=180) |
|||
|
|||
# ligne centrale |
|||
|
|||
self.canvas.create_line(self.terrain.width//2, 0, self.terrain.width//2, self.terrain.height, width=3) |
|||
|
|||
# cercle du milieu |
|||
self.canvas.create_oval(self.terrain.width//2 - self.terrain.middle_circle, self.terrain.height//2 - self.terrain.middle_circle, self.terrain.width//2 + self.terrain.middle_circle, self.terrain.height//2 + self.terrain.middle_circle, width=3) |
|||
|
|||
|
|||
gui = Gui() |
|||
gui.draw_terrain() |
|||
|
|||
gui.win.bind("<Button-1>", gui.context_menu) |
|||
|
|||
gui.win.mainloop() |
@ -0,0 +1,27 @@ |
|||
from tkinter import * |
|||
|
|||
class Window(Frame): |
|||
def __init__(self, master=None): |
|||
Frame.__init__(self, master) |
|||
self.master = master |
|||
|
|||
menu = Menu(self.master) |
|||
self.master.config(menu=menu) |
|||
|
|||
fileMenu = Menu(menu) |
|||
fileMenu.add_command(label="Item") |
|||
fileMenu.add_command(label="Exit", command=self.exitProgram) |
|||
menu.add_cascade(label="File", menu=fileMenu) |
|||
|
|||
editMenu = Menu(menu) |
|||
editMenu.add_command(label="Undo") |
|||
editMenu.add_command(label="Redo") |
|||
menu.add_cascade(label="Edit", menu=editMenu) |
|||
|
|||
def exitProgram(self): |
|||
exit() |
|||
|
|||
root = Tk() |
|||
app = Window(root) |
|||
root.wm_title("Tkinter window") |
|||
root.mainloop() |
Loading…
Reference in new issue