-
Notifications
You must be signed in to change notification settings - Fork 0
Home
CTkDesigner es una herramienta avanzada para el diseño de interfaces gráficas de usuario (GUI) creada con Python y CustomTkinter. Su objetivo es facilitar el diseño visual y la exportación de proyectos CustomTkinter, eliminando la necesidad de escribir código desde cero.
- Interfaz visual intuitiva: Diseña GUIs de forma gráfica sin escribir código.
- Widgets arrastrables: Posiciona widgets fácilmente mediante la funcionalidad de "arrastrar y soltar".
- Edición en tiempo real: Ajusta propiedades como colores, dimensiones y posiciones dinámicamente.
- Vista jerárquica: Organiza y visualiza la estructura de tus widgets.
-
Exportación de código: Genera scripts
.py
compatibles con CustomTkinter. - Importación y exportación de proyectos: Guarda y reanuda proyectos fácilmente.
git clone https://github.com/yourusername/CTkDesigner.git
cd CTkDesigner
pip install -r requirements.txt
python main.py
- Lanza la aplicación para abrir el diseñador de interfaces.
- Configura las propiedades iniciales de la ventana (tamaño, colores, etc.).
- Arrastra y coloca widgets en el área de diseño.
- Edita las propiedades de los widgets desde el panel de configuración.
- Previsualiza o exporta tu diseño con un solo clic.
- Python 3.x
- CustomTkinter: [Repositorio oficial](https://github.com/TomSchimansky/CustomTkinter)
- Tkinter: (Incluido por defecto en Python)
Para instalar los paquetes necesarios, ejecuta:
pip install customtkinter
El proyecto está organizado en los siguientes directorios y archivos:
CTkDesigner/
├── data/
│ └── variable.py
├── functions/
│ ├── create_widget_animation.py
│ └── import_widget.py
├── objects/
│ ├── animationMixin.py
│ ├── codeBox.py
│ ├── text_menu.py
│ ├── tooltip.py
│ └── virtualWindow.py
├── translations/
│ ├── translations.py
│ └── translator.py
├── [main.py](https://chatgpt.com/c/main.py)
├── README.md
└── debug.log
-
App: Clase principal de la aplicación.
-
create_ui(vw_height, vw_width, bools)
: Configura la interfaz de usuario. -
create_project(import_proyect=False)
: Crea un nuevo proyecto. -
clear_virtual_window(h, w, bools)
: Limpia la ventana virtual. -
view_code()
: Alterna la vista del código. -
update_virtual_window(event)
: Actualiza la ventana virtual con el código actual. -
cross_update_treeview()
: Actualiza el esquema del TreeView.
-
-
LeftSidebar: Barra lateral izquierda.
-
create_scrollable_frame()
: Crea un marco desplazable. -
create_label(parent, text)
: Crea y configura un widget CTkLabel.
-
-
RightSidebar: Barra lateral derecha.
-
configure_treeview_style()
: Configura el estilo del TreeView. -
create_widgets_section()
: Crea la sección de widgets. -
create_treeview_section()
: Crea la sección del TreeView. -
add_widget(widget)
: Añade un widget a la ventana virtual. -
update_treeview()
: Actualiza el esquema del TreeView.
-
-
Toolbar: Barra de herramientas.
-
create_buttons()
: Crea y empaqueta los botones de la barra de herramientas. -
export_to_file()
: Exporta el contenido de la ventana virtual a un archivo Python. -
import_from_file()
: Importa contenido desde un archivo Python a la ventana virtual.
-
[objects/virtualWindow.py](objects/virtualWindow.py)
-
VirtualWindow: Clase que representa la ventana virtual.
-
create_footer_lines()
: Crea las líneas de pie de página para el código exportado. -
write_to_file(file_path, lines)
: Escribe las líneas generadas en el archivo especificado. -
add_widget(widget_type)
: Agrega un widget al VirtualWindow. -
previsualize_code()
: Genera las líneas de código para la previsualización. -
export_to_file(file_path)
: Exporta la configuración actual de la ventana virtual a un archivo. -
import_from_file(file_path)
: Importa widgets desde un archivo Python exportado. -
clean_virtual_window()
: Limpia el contenido del VirtualWindow. -
read_file(file_path)
: Lee el contenido del archivo especificado. -
find_app_class(tree)
: Encuentra la clase 'App' en el AST. -
find_generic_widget_creator(app_class)
: Encuentra la función 'generic_widget_creator' en la clase 'App'.
-
[objects/codeBox.py](objects/codeBox.py)
-
AddLineNums: Clase para agregar números de línea a un widget de texto.
-
__init__(master, text_color=None, justify="left", padx=30, **kwargs)
: Inicializa la clase. -
set_scrollbar(x, y)
: Configura la barra de desplazamiento. -
_set_appearance_mode(mode_string)
: Configura el modo de apariencia.
-
[functions/import_widget.py](functions/import_widget.py)
-
load_classes_from_file(file_path)
: Carga clases desde un archivo. -
get_class_parameters(cls)
: Obtiene los parámetros del constructor de una clase.
app = App()
app.create_project()
virtual_window = VirtualWindow(parent, left_sidebar, app, parameters_dict, width=800, height=500)
virtual_window.add_widget('CTkButton')
toolbar = Toolbar(parent, virtual_window, rightbar)
toolbar.export_to_file()
Para más detalles, consulta los archivos fuente en el repositorio.
Las contribuciones son bienvenidas. Si tienes ideas o mejoras, sigue estos pasos:
- Realiza un fork del repositorio.
- Crea una nueva rama para tu funcionalidad o corrección:
git checkout -b feature/nueva-funcionalidad
- Envía un Pull Request explicando los cambios.
Este proyecto está bajo la Licencia MIT. Consulta el archivo [LICENSE](https://github.com/yourusername/CTkDesigner/blob/main/LICENSE) para más información.