domingo, 2 de diciembre de 2018

crear calendario

calendario en python.

para crear un calendario en python se utiliza el siguiente codigo:


#!/usr/bin/env phyton
# - * - coding: utf - 8 -*-# Simple calendario con tkinter

import calendar
import Tkinter as tk
import datetime

# Obtenemos los valores del ano y mes a mostrar
ano = datetime.date.today().year
mes = datetime.date.today().month


def writeCalendar(ano, mes):
    # Asignamos el ano y mes al calendario
    str1 = calendar.month(ano, mes)
    label1.configure(text=str1)


def mesAnterior():
    global mes, ano
    mes -= 1
    if ano == 0:
        mes = 12
    ano -= 1    writeCalendar(ano, mes)


def mesSiguiente():
    global mes, ano
    mes += 1
    if mes == 13:
        mes = 1
    ano += 1
    writeCalendar(ano, mes)


root = tk.Tk()
root.title("Calendario")

# Lo posicionamos en un label
label1 = tk.Label(root, text="", font=('courier', 40, 'bold'), bg='white', justify=tk.LEFT)
label1.grid(row=1, column=1)

# ponemos los botones dentro un Frame
frame = tk.Frame(root, bd=5)
anterior = tk.Button(frame, text="Anterior", command=mesAnterior)
anterior.grid(row=1, column=1, sticky=tk.W)
siguiente = tk.Button(frame, text="Siguiente", command=mesSiguiente)
siguiente.grid(row=1, column=2)
frame.grid(row=2, column=1)

writeCalendar(ano, mes)

# ejecutamos el evento loop
root.mainloop()


calendario mostrandose en ventana:


multiplicaciones

programa que realiza multiplicaciones.

el siguiente programa realiza multiplicaciones de numero ingresados por el usuario pero solo multiplica el numero ingresado x5, x10 x15 o x20.

el codigo es el siguiente:

# -*- coding: utf-8 -*-
from Tkinter import *


def hacer_click():
    try:
        valor = int(entrada_texto.get())
        valor = valor * 5        etiqueta.config(text=valor)

    except ValueError:
        etiqueta.config(text="Introduzca un valor")


def hacer_click2():
    try:
        valor2 = int(entrada_texto2.get())
        valor2 = valor2 * 10        etiqueta2.config(text=valor2)

    except ValueError:
        etiqueta2.config(text="Introduzca un valor")


def hacer_click3():
    try:
        valor3 = int(entrada_texto3.get())
        valor3 = valor3 * 15        etiqueta3.config(text=valor3)

    except ValueError:
        etiqueta3.config(text="Introduzca un valor")

def hacer_click4():
    try:
        valor4 = int(entrada_texto4.get())
        valor4 = valor4 * 20        etiqueta4.config(text=valor4)

    except ValueError:
        etiqueta4.config(text="Introduzca un valor")


app = Tk()  # marco de la aplicacion con el obj Tkvp = Frame(app)  # usamos el objeto frame'''ahora le damos formato a nuestra ventana, y para esovamos a utilizar el metodo grid(), el cual nos va a permitirposicionar los elementos graficos en nuestra ventana.
otro parametro que utilizaremos sera el margen: padx = (50,50)lo cual indica 50 pixeles del lado izquierdo y 50 pixelesdel lado derecho
luego utilizamos pady = (10,10), que son 10 pixeles en la partesuperior y 10 pixeles en la parte inferior'''
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10))

'''luego vamos a utilizar los metodos columnconfigure()y rowconfigure() los cuales nos van a servir para dar unpeso relativo del ancho y el alto de todos los elementos que se pongan en la ventana'''
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)

'''creamos una etiqueta llamada valor y la posicionamoscon el metodo grid()'''
etiqueta = Label(vp, text="valor")  # creo un objeto etiquetaetiqueta.grid(column=100, row=1)

etiqueta2 = Label(vp, text="valor 2")
etiqueta2.grid(column=100, row=4)

etiqueta3 = Label(vp, text="valor 3")
etiqueta3.grid(column=100, row=6)

etiqueta4 = Label(vp, text="valor 4")
etiqueta4.grid(column=100, row=9)

'''creamos un boton de OK y posicionamos con grid '''
boton = Button(vp, text="Multiplicar por 5", command=hacer_click)
boton.grid(column=1, row=1)

boton1 = Button(vp, text="Multiplicar por 10", command=hacer_click2)
boton1.grid(column=1, row=4)

boton2 = Button(vp, text="Multiplicar por 15", command=hacer_click3)
boton2.grid(column=1, row=6)

boton3 = Button(vp, text="Multiplicar por 20", command=hacer_click4)
boton3.grid(column=1, row=9)

valor = ""entrada_texto = Entry(vp, width=10, textvariable=valor)
entrada_texto.grid(column=2, row=1)

valor2 = ""entrada_texto2 = Entry(vp, width=10, textvariable=valor2)
entrada_texto2.grid(column=2, row=4)

valor3 = ""entrada_texto3 = Entry(vp, width=10, textvariable=valor3)
entrada_texto3.grid(column=2, row=6)

valor4 = ""entrada_texto4 = Entry(vp, width=10, textvariable=valor4)
entrada_texto4.grid(column=2, row=9)

app.mainloop()  # es el metodo mainloop, lanza la ventana                                                           


programa ejecutandose:

programa que marca la ruta de un archivo.

programa que usa un concepto similar a cuando nosotros guardamos una imagenes desde la web desde el pc pero esta solo nos marca la ruta del archivo que tenemos en nuestra pc.

codigo del programa:

from Tkinter import *
from tkFileDialog import askopenfilename

root = Tk()
root.geometry("500x500")
root.title("Mostrar ruta fichero")

et1 = Label(root, text="Pulsa en el boton y elige una ruta").place(x=150, y=70)


def llamada():
    nombre = StringVar()
    nombre.set(askopenfilename())
    Entry(root, width=40, textvariable=nombre).place(x=100, y=100)


Entry(root, width=40).place(x=100, y=100)
Button(root, text="...", command=llamada).place(x=370, y=100)

root.mainloop()


programa ejecutandose correctamente:



programa que almacena texto en una lista

programa lista

programa que sirve principalmente para almacenar cualquier cosa escrita sobre temas que quiera el usuario para crear una lista.

codigo:

from Tkinter import *

root = Tk()
root.geometry("500x500")
root.title("tareas pendiente")


def fun():
    x = aux2.get()
    pelis.append(x)
    lol = OptionMenu(root, aux, *pelis).place(x=350, y=140)


et1 = Label(root, text="Escribe el nombre de una tarea").place(x=100, y=100)
et2 = Label(root, text="tareas").place(x=350, y=100)
aux = StringVar()
aux.set("")
aux2 = StringVar()
pelis = [""]
lol = OptionMenu(root, aux, *pelis).place(x=350, y=140)

c1 = Entry(root, textvariable=aux2).place(x=100, y=140)
b1 = Button(root, text="Ingresar", command=fun).place(x=100, y=170)

root.mainloop()


programa en funcionamiento:


generador de numeros aleatorios

programa que genera numeros aleatorios.

programa que nos genera numeros aleatorios mediante intervalos predefinidos por el usuario.

codigo del programa:

from Tkinter import *
from random import *

root = Tk()
root.geometry("500x500")
root.title("Generador de numeros")


def funcion():
    num = randint(int(aux.get()), int(aux2.get()))
    aux3.set(num)


et1 = Label(root, text="Numero 1").place(x=100, y=100)
et2 = Label(root, text="Numero 2").place(x=100, y=150)
et3 = Label(root, text="Numero generado").place(x=100, y=250)

arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
aux = StringVar()
aux2 = StringVar()
aux3 = StringVar()
s1 = Spinbox(root, textvariable=aux, values=arr1).place(x=300, y=100)
s2 = Spinbox(root, textvariable=aux2, values=arr2).place(x=300, y=150)

caja = Entry(root, textvariable=aux3).place(x=300, y=250)
b1 = Button(root, text="Generar", command=funcion).place(x=300, y=300)

root.mainloop()


programa en funcionamiento:


saludador de personas.

programa que saluda.

este es un programa simple saluda al usuario incluyendo su nombre.
el codigo es el siguiente

from Tkinter import *
import tkMessageBox

root = Tk()
root.geometry("500x500")
root.title("Saludador")

et1 = Label(root, text="Escribe un nombre para saludar").place(x=160, y=130)
entrada = StringVar()
entrada.set('')
caja11 = Entry(root, textvariable=str(entrada)).place(x=170, y=180)
b1 = Button(root, text="Saludar",            command=lambda: tkMessageBox.showinfo("Message", "Hola " + entrada.get() + "!")).place(x=200, y=230)

root.mainloop()

programa en funcionamiento:

imagenes desde la web

programa que abre imagenes desde la web de formato gif.

el siguiente programa abre imagenes desde el navegador mediante su enlace y que dicho formato de la imagen sea .gif ya que si se intenta usar una url de imagen .jpg o .png no funciona.

el codigo es el siguiente.

import base64
try:
    # Python2    import Tkinter as tk
    from urllib2 import urlopen
except ImportError:
    # Python3    import tkinter as tk
    from urllib.request import urlopen
root = tk.Tk()
root.title("Implementar imagenes de web")
# margenesw = 800h = 800x = 80y = 100# usar width x height + x_offset + y_offset (no spaces!)root.geometry("%dx%d+%d+%d" % (w, h, x, y))
# cualquier imagen de la redimage_url = "https://blog.desdelinux.net/wp-content/uploads/2017/05/crear-gif-de-im%C3%A1genes.gif"image_byt = urlopen(image_url).read()
image_b64 = base64.encodestring(image_byt)
photo = tk.PhotoImage(data=image_b64)
# SE CREA UN CANVAS BLANCOcv = tk.Canvas(bg='white')
cv.pack(side='top', fill='both', expand='yes')
# SE COLOCA LA IMAGEN EN EL CANVAS# CREAR_IMAGEN(xpos, ypos, image, anchor)cv.create_image(10, 10, image=photo, anchor='nw')
root.mainloop()                                                                                                                                                               
   

imagen ejecutando el programa y mostrando el programa funcionando: