🎨
Informática para ingeniería 2023-2024
  • Informática para ingeniería
  • Básico python
  • Estructuras de control
    • while
    • for
    • try...except
    • If, else, elif, while, for
    • Ejemplo. Ciclos anidados. Tablas de multiplicar
    • Método abreviado
    • ¿Qué hace zip() ?
  • Secuencias
  • Comparativas: Cadena, lista, tupla y conjunto
    • Ejemplos listas y funciones: Control de temperatura
    • Verificación del NIF
    • Ejemplo listas: control de temperaturas
  • Secuencias: Matriz
    • Definición: Matriz
    • Localizar valores únicos en una matriz
    • Ejemplo matrices: Suma y Multiplicación
    • verificar si una matriz es cuadrada
  • Funciones
    • Definición: funciones
    • Ejemplo de funciones
  • Módulos
    • Módulo. Definición
    • Ejemplos de Módulos: math y random
  • Método abreviado de comprensión de listas...
    • Comprensión de listas
  • Funciones- Matriz-Ejemplos
    • Ejemplo, cálculo de Nómina mensual
    • Ejemplo, cálculo de Nómina mensual (desde el programa principal)
    • Menú, matriz y funciones
    • Localizar valores únicos en una matriz. Usar Funciones
    • Ejemplo funciones, matriz, archivos: Recuento de votos
    • Matrices 2ª Prueba Evaluación Continua. Curso 2018-2019 Parcial. Prof MRD
    • Prueba Evaluación Continua. Curso 2018-2019. Examen 1. Prof. MRD
    • Gestión de una matriz de números enteros
  • Ejecutable
    • Crear un programa ejecutable
  • Archivo (ficheros)
    • Definición: archivos (ficheros)
  • Ejemplos de Matriz y archivos (ficheros)
    • ¿Cómo se multiplican dos matrices?
    • Crear una matriz a partir de un archivo
    • Pedir datos, guardarlos en una matriz y en un archivo
    • Cálcular la media de unos datos almacenados en un archivo
    • Leer archivo, modificar datos y guardarlos
  • Interfaz Gráfica
    • Definición: Interfaz Gráfica de Usuario (IGU)
      • Label
      • Button
      • Radiobutton y Checkbutton
      • LabelFrame
      • Listbox
      • Entry
      • Características comunes de Label, Entry, button, radiobutton checkbutton
      • ttk.Combobox
      • Tamaño de una ventana
    • Ejemplo de Entorno gráfico: RadioButton
    • Visualizar la especialidad y nombre de un alumno
    • Visualizar los datos introducidos
    • Sumar 10 a un número introducido
    • Cálculo del área de un triángulo
    • Cálculo del área de un Círculo. Y dibujo de un círculo
    • ¿Dos números son divisibles?
    • Introducir valores y graficar
    • Ejemplo de botón, lista
  • Ejemplos de interfaz gráfica y archivos
  • Entorno gráficos y archivos
    • Almacenar los datos de un alumno
Con tecnología de GitBook
En esta página
  • Obtener el Tamaño Actual de la Ventana
  • Establecer el Tamaño de la Ventana
  • Obtener el Tamaño de la Pantalla
  1. Interfaz Gráfica
  2. Definición: Interfaz Gráfica de Usuario (IGU)

Tamaño de una ventana

Obtener el Tamaño Actual de la Ventana

Para obtener las dimensiones actuales de una ventana en Tkinter, puedes usar el método .geometry() sin pasar argumentos, o los métodos .winfo_width() y .winfo_height(). Aquí te muestro cómo utilizarlos:

import tkinter as tk

def mostrar_tamano():
    # Obtener el tamaño utilizando geometry()
    tamano = ventana.geometry()
    print("Tamaño actual (geometry):", tamano)
    
    # Obtener el tamaño utilizando winfo_width() y winfo_height()
    ancho = ventana.winfo_width()
    alto = ventana.winfo_height()
    print("Tamaño actual (winfo):", ancho, "x", alto)

# Crear la ventana principal
ventana = tk.Tk()
ventana.title("Ejemplo de Tamaño de Ventana")

# Configurar un tamaño inicial (opcional)
ventana.geometry("400x300")

# Crear un botón para mostrar el tamaño de la ventana
boton = tk.Button(ventana, text="Mostrar tamaño", command=mostrar_tamano)
boton.pack(pady=20)

# Iniciar el bucle principal de Tkinter
ventana.mainloop()
  • geometry() sin argumentos: Retorna una cadena con el tamaño y la posición de la ventana en el formato anchoxalto+x+y. Por ejemplo, "400x300+50+50".

  • winfo_width() y winfo_height(): Estos métodos devuelven el ancho y el alto actual de la ventana en píxeles. Es importante notar que estos métodos deben usarse después de que la ventana ha sido dibujada (por ejemplo, dentro de una función llamada por un evento o después de iniciar el bucle principal).

Establecer el Tamaño de la Ventana

Si deseas establecer un tamaño específico para la ventana, puedes usar el método .geometry() pasando una cadena con el formato anchoxalto. Aquí un ejemplo:

# Configurar un tamaño inicial (opcional)
ventana.geometry("400x300")

update() y update_idletasks()

Si necesitas obtener las dimensiones de la ventana antes de que el bucle principal haya comenzado, es útil llamar a ventana.update() o ventana.update_idletasks() después de establecer el tamaño o realizar cambios en el contenido de la ventana. Esto asegura que todas las actualizaciones pendientes a la interfaz gráfica se procesen, y que las dimensiones reportadas sean precisas.

Obtener el Tamaño de la Pantalla

Si lo que necesitas es obtener el tamaño de la pantalla completa donde se muestra la ventana, puedes utilizar .winfo_screenwidth() y .winfo_screenheight(). Estos métodos te proporcionan las dimensiones totales de la pantalla en píxeles.

import tkinter as tk

ventana = tk.Tk()
ancho_pantalla = ventana.winfo_screenwidth()
alto_pantalla = ventana.winfo_screenheight()

print("Ancho de la pantalla:", ancho_pantalla)
print("Alto de la pantalla:", alto_pantalla)

ventana.mainloop()

OJO

Si intentas obtener el tamaño de la ventana antes de que se muestre (antes de ventana.mainloop() y sin un retraso), obtendrás valores por defecto que generalmente son 1x1 píxeles. Por eso es importante asegurarse de que la ventana esté visible o utilizar métodos como .after() para programar la obtención del tamaño después de que la ventana se haya renderizado completamente.

El uso de .update() antes de obtener dimensiones también puede ayudar a procesar todos los cambios pendientes y obtener dimensiones actualizadas antes de que la ventana entre en el bucle principal.

Anteriorttk.ComboboxSiguienteEjemplo de Entorno gráfico: RadioButton

Última actualización hace 1 año