Skip to content

Virtual Window

Dev_ edited this page Jan 17, 2025 · 1 revision

Documentación de la Clase VirtualWindow

La clase VirtualWindow es una extensión de CTkFrame de CustomTkinter que proporciona una ventana virtual para la creación y manipulación de widgets. Esta clase incluye métodos para agregar, mover, ocultar, exportar e importar widgets, así como para generar líneas guía para la alineación de widgets.

Métodos

__init__(self, parent, left_sidebar, app, parameters_dict: dict, width=800, height=500)

Inicializa una nueva instancia de VirtualWindow.

  • Parámetros:
    • parent: El widget padre.
    • left_sidebar: La barra lateral izquierda.
    • app: La instancia de la aplicación.
    • parameters_dict: Diccionario de parámetros.
    • width (opcional): Ancho de la ventana virtual (por defecto 800).
    • height (opcional): Alto de la ventana virtual (por defecto 500).

count_widgets_by_type(self)

Cuenta la cantidad de widgets en la ventana virtual, clasificándolos por tipo.

  • Retorna: Un diccionario con el nombre del tipo de widget como clave y un subdiccionario con los nombres y la cantidad.

replace(self)

Coloca la ventana virtual en una posición específica.

add_widget(self, widget_type)

Agrega un widget del tipo especificado a la ventana virtual.

  • Parámetros:
    • widget_type: El tipo de widget a agregar.

create_widget(self, widget_type, **kwargs)

Crea un widget basado en el tipo proporcionado.

  • Parámetros:

    • widget_type: El tipo de widget a crear.
    • **kwargs: Argumentos adicionales para la creación del widget.
  • Retorna: El widget creado.

toggle_visibility(self)

Alterna la visibilidad de todos los widgets dentro de la ventana virtual.

  • Retorna: Un booleano indicando si los widgets están ocultos (True) o visibles (False).

previsualize_code(self)

Genera las líneas de código para la previsualización de la configuración actual de la ventana virtual.

  • Retorna: Una lista de líneas de código.

export_to_file(self, file_path)

Exporta la configuración actual de la ventana virtual a un archivo especificado.

  • Parámetros:
    • file_path: La ruta del archivo donde se exportará la configuración.

get_window_params_string(self)

Recupera los parámetros de la ventana como una cadena formateada.

  • Retorna: Una cadena con los parámetros de la ventana.

create_initial_lines(self, window_params_string)

Crea las líneas iniciales del código exportado.

  • Parámetros:

    • window_params_string: La cadena de parámetros de la ventana.
  • Retorna: Una lista de líneas iniciales de código.

add_widget_lines(self, lines)

Agrega líneas para cada widget al código exportado.

  • Parámetros:
    • lines: La lista de líneas de código a la que se agregarán las líneas de los widgets.

get_widget_params_string(self, widget, widget_params, font_pattern, font_pattern_)

Recupera los parámetros del widget como una cadena formateada.

  • Parámetros:

    • widget: El widget del cual se recuperarán los parámetros.
    • widget_params: Los parámetros del widget.
    • font_pattern: Patrón de expresión regular para fuentes.
    • font_pattern_: Patrón de expresión regular alternativo para fuentes.
  • Retorna: Una cadena con los parámetros del widget.

create_footer_lines(self)

Crea las líneas finales para el código exportado.

  • Retorna: Una lista de líneas finales de código.

write_to_file(self, file_path, lines)

Escribe las líneas generadas en el archivo especificado.

  • Parámetros:
    • file_path: La ruta del archivo donde se escribirán las líneas.
    • lines: La lista de líneas de código a escribir.

make_widget_movable(self, widget)

Hace que un widget sea movible dentro de la ventana virtual con líneas guía.

  • Parámetros:
    • widget: El widget que se hará movible.

add_custom_widget(self, widget)

Agrega un widget personalizado a la ventana virtual.

  • Parámetros:
    • widget: El widget personalizado a agregar.

draw_guides(self, widget, new_x, new_y, show_guides=True, color_exact="green", color_near="red", tolerance=5, snap_range=10)

Dibuja líneas guía en el canvas para ayudar con la alineación y auto-coloca el widget si está cerca de una guía.

  • Parámetros:
    • widget: El widget que se está moviendo.
    • new_x: La nueva posición x del widget.
    • new_y: La nueva posición y del widget.
    • show_guides (opcional): Booleano para mostrar u ocultar las guías (por defecto True).
    • color_exact (opcional): Color de las guías cuando están exactamente alineadas (por defecto "green").
    • color_near (opcional): Color de las guías cuando están cerca de la alineación (por defecto "red").
    • tolerance (opcional): Tolerancia para considerar que los widgets están alineados (por defecto 5).
    • snap_range (opcional): Rango en el que el widget se auto-coloca cuando está cerca de una guía (por defecto 10).

create_guide_line(self, x1, y1, x2, y2, color)

Crea una línea guía en el canvas.

  • Parámetros:
    • x1: Coordenada x inicial.
    • y1: Coordenada y inicial.
    • x2: Coordenada x final.
    • y2: Coordenada y final.
    • color: Color de la línea guía.

clear_guides(self)

Elimina las líneas guía del canvas.

make_widget_selectable(self, widget)

Hace que un widget sea seleccionable con clic derecho.

  • Parámetros:
    • widget: El widget que se hará seleccionable.

delete_widget(self, widget)

Borra un widget de la ventana virtual.

  • Parámetros:
    • widget: El widget a borrar.

import_from_codebox(self, code)

Importa widgets desde el código proporcionado en CodeBox, incluidos sus parámetros.

  • Parámetros:
    • code: El código desde el cual se importarán los widgets.

import_from_file(self, file_path)

Importa widgets desde un archivo Python exportado, incluidos sus parámetros.

  • Parámetros:
    • file_path: La ruta del archivo desde el cual se importarán los widgets.

clean_virtual_window(self)

Limpia el contenido de la ventana virtual.

read_file(self, file_path)

Lee el contenido del archivo especificado.

  • Parámetros:

    • file_path: La ruta del archivo a leer.
  • Retorna: El contenido del archivo como una cadena.

find_app_class(self, tree)

Encuentra la clase App en el AST.

  • Parámetros:

    • tree: El árbol de sintaxis abstracta (AST).
  • Retorna: El nodo de la clase App si se encuentra, de lo contrario None.

find_generic_widget_creator(self, app_class)

Encuentra la función generic_widget_creator en la clase App.

  • Parámetros:

    • app_class: El nodo de la clase App.
  • Retorna: El nodo de la función generic_widget_creator si se encuentra, de lo contrario None.

process_widget_calls(self, generic_widget_creator)

Procesa llamadas de widgets en la función generic_widget_creator.

  • Parámetros:
    • generic_widget_creator: El nodo de la función generic_widget_creator.

extract_widget_args(self, widget_call)

Extrae argumentos de widget y ubicación de la llamada del widget.

  • Parámetros:

    • widget_call: El nodo de la llamada del widget.
  • Retorna: Una tupla con dos diccionarios: widget_args y placement_args.

create_and_place_widget(self, widget_type, widget_args, x, y)

Crea y coloca el widget y actualiza la lista de widgets.

  • Parámetros:
    • widget_type: El tipo de widget a crear.
    • widget_args: Los argumentos del widget.
    • x: La posición x del widget.
    • y: La posición y del widget.
Clone this wiki locally