Para la Dra Schaeffer
Lab de lenguajes Jueves V1
aqui les dejare un código de python utilizando el modulo TK para realizar diseños gráficos. Realize el código viendo tutoriales en internet. Hasta el momento no he realizado mucho pero les puede ser de gran ayuda para sus proyectos. El programa lo que hasta el momento hace es que crea la ventana tiene una barra de menu, pestañas y botones, tambien detecta el movimiento del mouse y los clicks del mouse. El código ciene con comentarios para que lo puedan entender mejor.
#!/usr/bin/python
from Tkinter import* #importamos el modulo Tkinter de python
import os
root = Tk() # realiza la base de nuestro programa en Tk
frame = Frame(root, width = 500, height = 500) # creamos una ventana
root.mainloop() # ciclamos el programa para que la ventana se mantenga abierta
Hasta aqui obtendran una ventana como la siguiente:
Despues de --> frame = Frame(root, width = 500, height = 500) agregamos el siguiente codigo:
frame.pack() # se anade para cuando se cicle el programa
# x, y y z son clases
x = Label(root,text='pestana') # root es para cuando el programa se cicle; text es el texto que aparecera en la pestana
x.pack() # se debe unir al pack o paquete de frame
y = Button(root,text='boton') # de igual forma root es para ciclar y text es el texto del boton. No hace nada al darle clik porque no tiene comando
y.pack()
z = Button(root,text='salir', command = frame.quit) # aqui tiene el comando de salida que es frame.quit, que cierra el programa
z.pack()
Esto debe ir antes de --> root.mainloop() para que el programa se cicle y la ventana siga abierta. ejecuntenlo y tendran una ventana con una etiqueta y dos botones. La ventana sera como la siguiente:
Despues de la linea --> z.pack() agregaremos el siguiente codigo:
#crear una barra de menu
menu = Menu(root) # menu es una variable y Menu es ela clase
root.config(menu=menu)
primerMenu = Menu(menu) # se declara que primermenu es un menu
menu.add_cascade(label = 'nuevo', menu = primerMenu) # hace que la barra de menu tenga menus en forma de cascada. label = el nombre que desees
primerMenu.add_command(label = 'crear', command = 0) # primerMenu.add_command () es para anadir un comando al submenu en cascada
primerMenu.add_command(label = 'abrir', command = 0) # label = para el nombre que se desee poner
primerMenu.add_command(label = 'editar', command = 0) # command = 0 porque no hace nada hasta ahorita
primerMenu.add_separator() # para separar ciertos submenus de otros
primerMenu.add_command(label = 'salir', command = frame.quit) # command = frame.quit para salir
De igual manera este codigo debe estar antes de --> z.pack()
Lo que hicimos ahora fue crear una barra de menus. El menu estara en forma de cascada y tendra algunos botones. Se vera de la siguiente manera:
Donde al darle click al menu llamado nuevo se abriran los submenus
Por ultimo crearemos las funciones para que el programa detecte el movimiento del mouse y sus clicks
Despues de --> primerMenu.add_command(label = 'salir', command = frame.quit) , agregaremos lo siguiente:
#funciones de mouse
def mousemov(pos):
os.system("clear") #limpia la pantalla
print"posicion del mouse: ", pos.x, pos.y
def click(pos):
os.system("clear")
print "posicion al dar click: ", pos.x, pos.y # pos.x y pos.y indicaran la posicion en la que se encuentra el cursor
def dobclick(pos):
os.system("clear")
print "Posicion al dar doble click: ", pos.x, pos.y # imprime en la consola la posicion del mouse
def tripclick(pos):
os.system("clear")
print "posicion al dar triple click: ", pos.x, pos.y
def enter(pos):
os.system("clear")
print "enter"
def salir(pos):
os.system("clear")
print "salir"
# rutinas del mouse en el programa
#el metodo frame.bin se compone de dos partes, una etiqueta y una funcion
frame.bind("<Motion>",mousemov) # la etiqueta <Motion> es para detectar movimientos del mouse en la ventana
frame.bind("<Button-1>",click)
frame.bind("<Double-Button-1>",dobclick)
frame.bind("<Triple-Button-1>",tripclick)
frame.bind("<Enter>", enter)
frame.bind("<Leave>", )
De igual manera esto va antes de --> root.mainloop()
En mi caso yo puse las funciones del mouse despues de --> root = Tk()
Lo que tendremos ahora sera que en la consola se imprimira la posicion del cursor asi como tambien la posicion del cursor al darle click, doble click, triple click o click derecho
es lo que hasta el momento he realizado con los tutoriales que he leido. Espero les sea de gran ayuda y seguire subiendo post sobre este tema a medida que vaya avanzando. cualquier duda comenten
Muy bien, siete puntos para el lab.
ReplyDelete