Skip to content
Snippets Groups Projects
Commit d3a24e31 authored by Loloncio's avatar Loloncio
Browse files

Scrolls en defecto

Se han añadido scrolls con las labels en la vista defecto.

Se ha modificado la posición del botón vovler.

Se ha añadido título a las ventanas defecto y lsitas.
parent 0a12ee02
Branches
No related tags found
No related merge requests found
# Controlador para la vista Defecto de la app App-Perm
# Autor: Alejandro de la Cruz Garijo
import os
import sys
......@@ -9,35 +11,41 @@ from Model.GruposMod import GruposMod
from Model.PermisosMod import PermisosMod
class ControladorDef:
# Cargamos los modelos de datos necesarios
modeloGrupos = GruposMod()
modeloPermisos = PermisosMod()
# Obtenemos el nombre de todos los grupos
def getGrupos(self):
return self.modeloGrupos.getGrupos()
# Obtenemos todos los permisos de un grupo dado
def getPermisosGrupo(self, grupo):
permisos = self.modeloGrupos.getPermisos(grupo)
lista = ""
for i in permisos:
lista += i+"\n"
return lista
# Obtenemos el nombre de todos los permisos
def getPermisos(self):
return self.modeloPermisos.getPermisos()
# Obtenemos información de un permiso, su grupo y su protection level
def getInfoPermiso(self, permiso):
texto = "Permiso: "+permiso+"\n"
texto += "Grupo: "+self.modeloPermisos.getGrupo(permiso)+"\n"
texto += "Protection level: "+self.modeloPermisos.getProtection(permiso)+"\n"
return texto
# Obtenemos todos los permisos normales
def getPermisosNormales(self):
return self.modeloPermisos.getPermisosNormales()
# Obtenemos todos los permisos dangerous
def getPermisosDangerous(self):
return self.modeloPermisos.getPermisosDangerous()
# Obtenemos todos los permisos signatures
def getPermisosSignature(self):
return self.modeloPermisos.getPermisosSignature()
# Método para vovler al menú principal
def volver(self, vistaDefecto, vistaMenu):
vistaMenu.deiconify()
vistaDefecto.destroy()
# Método para cerrar del todo la app al pulsar en cerrar
def cerrar(self, vistMenu):
vistMenu.destroy()
\ No newline at end of file
......@@ -65,8 +65,7 @@ El proyecto constará de una aplicación Python y una app Android. La app Androi
</ul>
3. Defecto.py
<ul>
<li>Se mostrará la info requerida a la derecha de cada opción</li>
<li>Convertir los label de la derecha a scrolls para que la lista de permisos según el protection level no de problemas</li>
<li>Añadir boton para ir a vista final</li>
</ul>
4. Final.py
<ul>
......
......@@ -34,6 +34,7 @@ class defecto(ctk.CTkToplevel):
self.geometry("1280x720")
self.minsize(width=1280,height=720)
self.configure(fg_color = "#1E1E1E")
self.title("Permisos y grupos por defecto")
# Declaración e inicialización de variables
frames, scrolls, permisos, grupos, protection, labels = [], [], [], [], [], []
......@@ -51,15 +52,15 @@ class defecto(ctk.CTkToplevel):
# Creación de los frames base para cada lista
for i in range(3):
frames.append(ctk.CTkFrame(master=self,fg_color="#504F4F", corner_radius=10, width = self.WIDTH-10, height=self.HEIGHT/3-10))
frames.append(ctk.CTkFrame(master=self,fg_color="#504F4F", corner_radius=10, width = self.WIDTH-10, height=self.HEIGHT/3-46))
# Creación de scrollFrames donde se vera la lista de botones y
# frames donde podremos la información correspondiente al pulsar un boton
for i in range(3):
scrolls.append(ctk.CTkScrollableFrame(master=frames[i],fg_color="#504F4F", corner_radius= 10,width = ((self.WIDTH/2)-20), height=self.HEIGHT/3-10))
for i in range(6):
scrolls.append(ctk.CTkScrollableFrame(master=frames[i%3],fg_color="#504F4F", corner_radius= 10,width = ((self.WIDTH/2)-40)))
# Creación de los labels que se colocan a la derecha de las listas
for i in range(3):
labels.append(ctk.CTkLabel(frames[i], text="", text_color="white", fg_color="#504F4F",
corner_radius=10, justify="center", font=rightFont, width = (self.WIDTH/2)-20))
labels.append(ctk.CTkLabel(scrolls[i+3], text="", text_color="white", fg_color="#504F4F",
corner_radius=10, justify="center", font=rightFont,wraplength=((self.WIDTH/2)-45), height=self.HEIGHT/3-46))
# Creación de los botones para elegir permiso
for i in textoPermisos:
permiso = ctk.CTkLabel(scrolls[0], text=i, text_color="white", fg_color="#504F4F",
......@@ -80,15 +81,19 @@ class defecto(ctk.CTkToplevel):
font=leftFont, corner_radius= 10,
command=lambda protection = i, label = labels[2]: self.protectionClick(protection,label)))
# Creación del botón para volver al menu principal
volver = ctk.CTkButton(scrolls[2], command=self.volver, text="Volver", font=leftFont, corner_radius=10,
fg_color="#1E1E1E", text_color="white", height=50)
volver = ctk.CTkButton(self, command=self.volver, text="Volver", font=leftFont, corner_radius=10,
fg_color="#1E1E1E", text_color="white", height=40)
# Colocación de los frame base para las listas
for i in range(3):
frames[i].pack(padx=5, pady=5,)
frames[i].grid(column= 0, row = i, columnspan=2, padx=3, pady=3,)
# Colocación del botón de vuelta
volver.grid(column = 0, row = 3, pady = 3, padx = 20, sticky="w")
# Colocación de los frames donde pondremos las listas de botones y el resultado de la elección
for i, j in zip(scrolls, labels):
i.grid(row = 0, column=0, padx = 5)
j.grid(row = 0, column=1, padx = 5)
for i in range(3):
scrolls[i].grid(row = 0, column=0, padx = 5)
scrolls[i+3].grid(row = 0, column=1, padx = 5)
for i in labels:
i.pack(fill = "both",side="top", anchor="center")
# Colocación de los permisos
for permiso in permisos:
permiso.pack(fill="x")
......@@ -98,8 +103,6 @@ class defecto(ctk.CTkToplevel):
# Colocación de los niveles de potección
for level in protection:
level.pack(fill="x")
# Colocación del botón de vuelta
volver.pack(anchor = "w", side = "bottom")
# Cuando se modifique el tamaño de la ventana se llama al método que reajusta los elementos
self.bind("<Configure>", lambda event, frames = frames, scrolls = scrolls, labels= labels,
self=self: self.ajustarTamanos(self, frames, scrolls, labels))
......@@ -121,7 +124,6 @@ class defecto(ctk.CTkToplevel):
return
# Método para cuando se pulsa un nivel de protección
def protectionClick(self, protection, label):
if protection == "Normal":
label.configure(text=self.controlador.getPermisosNormales())
elif protection == "Dangerous":
......@@ -129,10 +131,13 @@ class defecto(ctk.CTkToplevel):
elif protection == "Dangerous":
label.configure(text=self.controlador.getPermisosSignature())
return
# Método para que cambie de color un widget al pasar el ratón por encima
def onEnter(self, event, permiso):
permiso.configure(fg_color = "#36719f")
# Método para que cambie de color un widget al quitar el ratón de encima
def onExit(self,event, permiso):
permiso.configure(fg_color = "#504F4F")
# Función para ajustar los tamaños al cambiar el tamaño de la ventana
def ajustarTamanos(self, event, frames, scrolls, labels):
anchoVentana = self.winfo_width()
......@@ -145,7 +150,8 @@ class defecto(ctk.CTkToplevel):
for i in range(3):
frames[i].configure(width = anchoVentana-10,height=altoVentana/3-10)
labels[i].configure(width = (anchoVentana/2)-20,height=altoVentana/3-10)
scrolls[i].configure(width = (anchoVentana/2)-20,height=altoVentana/3-10)
labels[i].configure(width = (anchoVentana/2)-20,height=altoVentana/3-46)
scrolls[i].configure(width = (anchoVentana/2)-40,height=altoVentana/3-46)
scrolls[i+3].configure(width = (anchoVentana/2)-40,height=altoVentana/3-46)
# Actualiza la ventana
self.update_idletasks()
\ No newline at end of file
......@@ -25,6 +25,7 @@ class listas(ctk.CTkToplevel):
self.geometry("1280x720")
self.minsize(width=1280,height=720)
self.configure(fg_color = "#1E1E1E")
self.title("Modificar permisos")
self.OPT = int(opt)
self.GRUPO.clear()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment