🎨
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
  • Enunciado
  • Análisis:
  • Diagrama
  • Código. Método pack()
  • Calcula y dibuja un círculo
  • Explicación
  1. Interfaz Gráfica

Cálculo del área de un Círculo. Y dibujo de un círculo

AnteriorCálculo del área de un triánguloSiguiente¿Dos números son divisibles?

Última actualización hace 1 año

Enunciado

Cálculo del área de un triángulo.

Análisis:

  • Crear la ventana, pedir los valores de la base y de la altura (Entry).

  • Cuando el usuario teclee el botón calcular, visualizar el área, si los valores introducidos son correctos.

Diagrama

Código. Método pack()

from tkinter import *
import math
def calculoarea():  
    try:
        # lee el valor de la altura escrita por el usuario
        radio= hueco_radio.get()
        # lee el valor del ángulo escrito por el usuario
        
        if float(radio)>0:
            # cálcula el área
            calculo_area=pow(float(radio),2)*math.pi
            # escribe el resultado en la eiqueta
            area.set("area: " + str(round(calculo_area,2)))  
        else:
            area.set("Los datos deben ser mayores que cero")
    except:
        area.set("Error al teclear datos")
#Características de la ventana
ventana = Tk()
ventana.title("Este es mi primerjjj programa")
ventana.geometry("450x450")
ventana.resizable(False, False)
#Botones de la ventana creada
titulo=Label(ventana,text="Cálculo del área de un circulo")
titulo.pack()
radio_t=Label(ventana,text="Radio=")
radio_t.pack()
hueco_radio=Entry(ventana,width=10)
hueco_radio.pack()
boton=Button(ventana,text="Cálculo",command=calculoarea)
boton.pack()
#Crea la variable que se va a declarar
area=StringVar()
area.set("área: 0")
calculo_area = Label(ventana, textvariable=area)
calculo_area.pack()
ventana.mainloop()

Calcula y dibuja un círculo

Para incluir al código anterior que dibuje un círculo:

from tkinter import *
import math

def calculoarea():  
    try:
        # lee el valor de la altura escrita por el usuario
        radio = hueco_radio.get()
        
        if float(radio) > 0:
            # cálcula el área
            calculo_area = pow(float(radio), 2) * math.pi
            # escribe el resultado en la etiqueta
            area.set("Área: " + str(round(calculo_area, 2)))

            # Limpiar el canvas antes de dibujar un nuevo círculo
            canvas.delete("all")
            # Dibujar el círculo en el canvas
            # Debemos asegurarnos de que el círculo quepa en el canvas
            x0 = y0 = 50  # Coordenadas de inicio (esquina superior izquierda del círculo)
            x1 = y1 = 50 + 2 * float(radio)  # Coordenadas de fin (esquina inferior derecha del círculo)
            canvas.create_oval(x0, y0, x1, y1, outline='blue', width=2)
        else:
            area.set("Los datos deben ser mayores que cero")
    except ValueError:
        area.set("Error al teclear datos")

    hueco_radio.delete(0, END)

# Características de la ventana
ventana = Tk()
ventana.title("Este es mi primer programa")
ventana.geometry("450x450")
ventana.resizable(False, False)

# Botones de la ventana creada
titulo = Label(ventana, text="Cálculo del área de un círculo")
titulo.pack()

radio_t = Label(ventana, text="Radio=")
radio_t.pack()

hueco_radio = Entry(ventana, width=10)
hueco_radio.pack()

boton = Button(ventana, text="Cálculo", command=calculoarea)
boton.pack()

# Crea la variable que se va a declarar
area = StringVar()
area.set("Área: 0")
calculo_area = Label(ventana, textvariable=area)
calculo_area.pack()

# Agregar un canvas para dibujar el círculo
canvas = Canvas(ventana, width=300, height=300, bg='white')
canvas.pack()

ventana.mainloop()

Explicación

  • Canvas: He añadido un widget Canvas al final de la ventana. Este canvas tiene un tamaño de 300x300 píxeles con un fondo blanco.

  • Dibujar el Círculo: Dentro de la función calculoarea, después de calcular el área, limpia cualquier dibujo previo con canvas.delete("all") y luego dibujo el círculo utilizando canvas.create_oval(). Las coordenadas del círculo se calculan para que el círculo esté centrado respecto a su radio.

  • Manejo de Excepciones: He cambiado la captura de excepciones a ValueError para comprobar específicamente errores relacionados con conversiones de tipos no válidos, lo cual es más adecuado cuando se trata con entradas numéricas.