-
Notifications
You must be signed in to change notification settings - Fork 0
Main.py
El archivo main.py
es el núcleo de la aplicación CTkDesigner. Define la estructura principal de la interfaz gráfica de usuario (GUI) utilizando la biblioteca CustomTkinter y maneja la lógica central de la aplicación. Permite la creación de proyectos, configuración de widgets, administración de propiedades y exportación/importación de archivos.
El archivo importa múltiples módulos y bibliotecas para gestionar la interfaz gráfica, traducciones y funcionalidad personalizada:
import logging
import tkinter.ttk as ttk
import customtkinter as ctk
from data.variable import *
from objects.tooltip import *
from tkinter import filedialog
from functions.import_widget import *
from objects.codeBox import CTkCodeBox
from translations.translations import *
from translations.translator import Translator
from functions.create_widget_animation import *
from objects.virtualWindow import VirtualWindow
Valida si una entrada es un número entre 0 y 1000 o está vacía.
-
Argumentos:
-
value
(str
): Valor que representa la entrada del usuario a validar.
-
-
Retorna:
-
bool
:True
si el valor cumple con los criterios; de lo contrario,False
.
-
Define la barra lateral izquierda de la aplicación, que proporciona opciones de configuración para widgets seleccionados.
-
Atributos:
-
PADDING
(int
): Espaciado constante utilizado en la interfaz. -
ROW_SCENE
(int
): Índice de la fila actual en el administrador de escenas. -
widget_dict
(dict
): Diccionario que almacena widgets y sus variables asociadas.
-
-
Métodos principales:
-
create_scrollable_frame()
: Crea un marco desplazable.- Argumentos: Ninguno.
-
Retorna: Un objeto
CTkScrollableFrame
oCTkFrame
según la configuración.
-
create_label(parent, text)
: Crea un widgetCTkLabel
.-
Argumentos:
-
parent
(CTk
): Contenedor donde se agregará el label. -
text
(str
): Texto a mostrar en el label.
-
-
Retorna: El objeto
CTkLabel
creado.
-
Argumentos:
-
create_config_space()
: Crea un marco para configuraciones de widgets.- Argumentos: Ninguno.
-
Retorna: Un objeto
CTkFrame
.
-
create_scene_manager_frame()
: Crea el marco para gestionar escenas.- Argumentos: Ninguno.
-
Retorna: Un objeto
CTkScrollableFrame
.
-
show_widget_config(widget)
: Muestra las opciones de configuración para un widget seleccionado.-
Argumentos:
-
widget
(widget): Widget a configurar.
-
- Retorna: Ninguno.
-
Argumentos:
-
clear_config_space()
: Limpia el espacio de configuración.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_property_entries(widget, properties)
: Genera entradas de propiedades para un widget.-
Argumentos:
-
widget
(widget): Widget objetivo. -
properties
(list
): Lista de propiedades a configurar.
-
- Retorna: Ninguno.
-
Argumentos:
-
update_property(widget, prop, entry, tooltip)
: Actualiza una propiedad específica de un widget basado en un valor de entrada.-
Argumentos:
-
widget
(widget): Widget objetivo. -
prop
(str
): Propiedad del widget a modificar. -
entry
(CTkEntry
): Entrada que contiene el nuevo valor. -
tooltip
(CTkToolTip
): Herramienta para mostrar errores.
-
- Retorna: Ninguno.
-
Argumentos:
-
create_position_entries(widget)
: Crea entradas para posiciones (x, y).-
Argumentos:
-
widget
(widget): Widget para el que se generan las entradas.
-
- Retorna: Ninguno.
-
Argumentos:
-
create_action_buttons(widget)
: Genera botones para acciones específicas del widget.-
Argumentos:
-
widget
(widget): Widget objetivo.
-
- Retorna: Ninguno.
-
Argumentos:
-
delete_widget(widget)
: Elimina un widget de la interfaz virtual.-
Argumentos:
-
widget
(widget): Widget a eliminar.
-
- Retorna: Ninguno.
-
Argumentos:
-
Administra la barra lateral derecha, que muestra la jerarquía de widgets y proporciona herramientas para gestionar la ventana virtual.
-
Atributos:
-
TREEVIEW_WIDTH
(int
): Anchura del árbol de widgets. -
PADDING
(int
): Espaciado constante utilizado en la interfaz.
-
-
Métodos principales:
-
configure_treeview_style()
: Configura el estilo del árbol de widgets.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_widgets_section()
: Crea la sección de widgets.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
import_custom_widget()
: Importa un widget personalizado desde un archivo.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_treeview_section()
: Genera el esquema de widgets.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
add_widget(widget)
: Añade un widget a la ventana virtual y actualiza el árbol.-
Argumentos:
-
widget
(widget): Widget a añadir.
-
- Retorna: Ninguno.
-
Argumentos:
-
update_treeview()
: Actualiza la jerarquía del árbol basándose en los widgets detectados.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
Administra la barra de herramientas superior, que incluye opciones para exportar proyectos, cambiar configuraciones y alternar vistas.
-
Atributos:
-
PROGRESS_BAR_HIDE_DELAY
(int
): Tiempo de espera para ocultar la barra de progreso.
-
-
Métodos principales:
-
apply_configs(language)
: Aplica configuraciones específicas de idioma.-
Argumentos:
-
language
(str
): Idioma a aplicar.
-
- Retorna: Ninguno.
-
Argumentos:
-
create_config_widgets(config_window)
: Crea widgets dentro de la ventana de configuración.-
Argumentos:
-
config_window
(CTkToplevel
): Ventana donde se añaden los widgets.
-
- Retorna: Ninguno.
-
Argumentos:
-
open_config_window()
: Abre la ventana de configuración.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_buttons()
: Crea y posiciona los botones de la barra de herramientas.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
export_to_file()
: Exporta la configuración actual a un archivo Python.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
import_from_file()
: Importa un proyecto desde un archivo Python.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
Maneja el registro de mensajes en la etiqueta de información de la barra de herramientas.
-
Métodos principales:
-
emit(record)
: Muestra un mensaje de log en la etiqueta.-
Argumentos:
-
record
(LogRecord
): Registro del log a mostrar.
-
- Retorna: Ninguno.
-
Argumentos:
-
Clase principal de la aplicación que inicializa la interfaz gráfica y administra los componentes principales.
-
Atributos:
-
TITLE_FONT
(CTkFont
): Fuente del título. -
SUBTITLE_FONT
(CTkFont
): Fuente del subtítulo. -
LABEL_FONT
(CTkFont
): Fuente de las etiquetas. -
ENTRY_STYLE
(dict
): Estilo predeterminado de las entradas. -
CHECKBOX_STYLE
(dict
): Estilo predeterminado de las casillas de verificación.
-
-
Métodos principales:
-
setup_grid()
: Configura el diseño de cuadrícula de la aplicación.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_virtual_window()
: Genera la ventana virtual principal.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_ui_elements()
: Crea los elementos principales de la interfaz.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
view_code()
: Alterna entre la vista de la interfaz y el código fuente generado.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
create_project(import_proyect=False)
: Inicializa un nuevo proyecto.-
Argumentos:
-
import_proyect
(bool
): Define si se importa un proyecto existente.
-
- Retorna: Ninguno.
-
Argumentos:
-
refresh_ui()
: Refresca la interfaz con traducciones actualizadas.- Argumentos: Ninguno.
- Retorna: Ninguno.
-
El archivo concluye con el inicio de la aplicación:
if __name__ == "__main__":
app = App()
app.mainloop()
- El sistema utiliza
CustomTkinter
para personalizar widgets de Tkinter. - Se integra un sistema de traducción con soporte multilingüe.
- La ventana virtual permite añadir, mover y configurar widgets dinámicamente.
- La exportación genera código Python que representa la interfaz diseñada.
Para contribuciones, abre un problema en el repositorio de GitHub o contacta al equipo de desarrollo.