1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
import tkinter as tk
from tkinter import messagebox
from controller import *
from configurations import *
class View(tk.Tk):
def __init__(self, MVC_controller):
# Héritage de la classe parente
super().__init__()
# Géometrie
self.geometry("800x600")
# Appel du controleur
self.controller = MVC_controller
# Mise en place de la fenêtre
self.create_top_menu()
# Le container principal
self.myContainer1 = tk.Frame(self, background ='purple') ###
self.myContainer1.pack(fill = tk.BOTH, expand=tk.YES)
# frame boutons coté droit du container principal
self.frame_boutons = tk.Frame(self.myContainer1, width=200, background="yellow")
self.frame_boutons.pack(side=tk.RIGHT,fill=tk.Y)
# frame canvas dans le container principal
self.frame_canvas = tk.Frame(self.myContainer1, background="pink")
self.frame_canvas.pack(side=tk.RIGHT,fill=tk.BOTH)
# Maintenant nous ajoutons des bouttons à bouttons frame
self.button1 = tk.Button(self.frame_boutons, command=self.destroy)
self.button1.configure(text="QUIT", background= "green")
self.button1.configure(width=10)
self.button1.pack(fill=tk.X)
# Maintenant nous ajoutons des bouttons à bouttons frame
self.button2 = tk.Button(self.frame_boutons, command=self.destroy)
self.button2.configure(text="BT2", background= "yellow")
self.button2.pack(fill=tk.X)
# Maintenant nous ajoutons des bouttons à bouttons frame
self.button3 = tk.Button(self.frame_boutons, command=self.button3Click)
self.button3.configure(text="BT3", background= "yellow")
self.button3.pack(fill=tk.X)
self.button3.bind("<Button-1>", self.button3Click)
# Bandeau information container secondaire
self.myContainer2 = tk.Frame(self, height=64, background="lightblue")
self.info_label = tk.Label(self.myContainer2, text=" White to Start the Game ", fg=BOARD_COLOR_2)
self.info_label.pack(side=tk.RIGHT, padx=8, pady=5)
self.myContainer2.pack(fill=tk.X, side=tk.BOTTOM)
def button3Click(self,event):
print("Hello")
if self.button3["background"] == "green":
self.button3["background"] = "yellow"
else:
self.button3["background"] = "green"
def create_top_menu(self):
self.menu_bar = tk.Menu()
self.create_file_menu()
self.create_edit_menu()
self.create_about_menu()
def create_canvas(self, parent):
self.canvas = tk.Canvas(parent, background="pink")
self.canvas.pack(side=tk.LEFT,fill=tk.BOTH, padx=8, pady=8)
def create_boutons_frame(self, parent):
self.button1 = tk.Button(parent, command=self.destroy, width = 200)
self.button1.configure(text="QUIT", background= "green")
self.button1.configure(width=10)
self.button1.pack(side = tk.TOP, padx=8, pady=8)
def on_about_menu_clicked(self):
messagebox.showinfo("PROJET GUI")
def on_new_game_menu_clicked(self):
pass
def on_preference_menu_clicked(self):
pass
def create_file_menu(self):
self.file_menu = tk.Menu(self.menu_bar, tearoff=0)
self.file_menu.add_command(label="New Game", command=self.on_new_game_menu_clicked)
self.menu_bar.add_cascade(label="File", menu=self.file_menu)
self.config(menu=self.menu_bar)
def create_edit_menu(self):
self.edit_menu = tk.Menu(self.menu_bar, tearoff=0)
self.edit_menu.add_command(label="Preferences", command=self.on_preference_menu_clicked)
self.menu_bar.add_cascade(label="Edit", menu=self.edit_menu)
self.config(menu=self.menu_bar)
def create_about_menu(self):
self.about_menu = tk.Menu(self.menu_bar, tearoff=0)
self.about_menu.add_command(label="About", command=self.on_about_menu_clicked)
self.menu_bar.add_cascade(label="About", menu=self.about_menu)
self.config(menu=self.menu_bar)
def init_interface():
MVC_controller = Controller()
app = View(MVC_controller)
app.mainloop()
if __name__ == "__main__":
init_interface() |
Partager