Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen – El scripting generalmente se refiere a escribir La primordial finalidad de este programa es simplificar y
pequeños programas que están diseñados para automatizar hacer muchísimo más cómoda la relación entre una persona y
tareas simples. Python es adecuado para este tipo de tareas, un sistema operativo o máquina. Anteriormente solamente las
principalmente porque tienen una sintaxis relativamente simple y personas con conocimiento de informática podían usar un
es fácil de escribir. También es rápido escribir algo pequeño con
computador, pero las interfaces graficas sustituyeron la
él y probarlo.
complejidad de los comandos por acciones predeterminadas
usando elementos visuales muy sencillos de comprender.
un enfoque más nuevo. Que parece un poco más nativo que Es simple y fácil de aprender
Tkinter en diferentes sistemas operativos, debido a que no Documentación completa
aspira a generar su propio grupo de widgets. Es viable que También nos ofrece una cantidad de recursos, incluidos libros
ocupe agrupar wxPython con sus aplicaciones, debido a que y ejemplos de código.
no se instala automáticamente con Python. WxPython usa la
biblioteca wxWindows de su plan primordial, que está Desventajas:
aprobado por OSI.
Pocos elementos gráficos (sin listados, arboles, etc.)
PyQt Limitado control del comportamiento de la interface
(recomendado para proyectos “triviales”
PyQt implementa la famosa biblioteca Qt, por lo cual, si está Apariencia “extraña” (no se parece a las aplicaciones nativas)
familiarizado con el desarrollo de Qt en otro lenguaje, tal vez
a partir del desarrollo de aplicaciones originarias para KDE u F. Averigua para que se usan las librerías tk, ttk y tix.
otro ámbito de escritorio con QT, es probable que ya se
encuentre familiarizado con Qt. Esto abre la probabilidad de
desarrollar aplicaciones en Python que tengan un aspecto
familiar en muchas plataformas, al tiempo que aprovechan los Tk decimos que es una biblioteca de controles visuales que los
instrumentos y el razonamiento de la gran sociedad de Qt. tenemos la posibilidad de entrar a partir de Python y a partir
de otros idiomas de programación. Se suma una totalmente
nueva serie de controles visuales (notebook, combobox) y
C. De las formas de programar GUIs consultadas modernizó lo que hemos observado en los conceptos
anteriormente, averigüe cuál de ellas es el método más fácil anteriores.
y por qué.
El módulo tkinter.ttk da ingreso al grupo de widgets temáticos
Tk, introducido en Tk 8.5. El proceso anterior que usa Tk 8.5
El método más fácil para progrmar GUIs es Tkinter, ya que
otorga ventajas extras, incluida la representación de fuentes
este framework nos ofrece una fácil instalación ya que por
suavizada en X11 y la transparencia de ventanas.
defecto viene incluido en las librerías de Python, además nos
ofrece ejemplos sencillos para aquellos que recién empezamos
El modulo tkinter.tix otorga un rico grupo adicional de
a programar GUIs, siendo fáciles de entender y sencillos.
widgets. Aun cuando la biblioteca estándar de Tk tiene varios
Además de que funciona de forma inmediata en la mayoría de
widgets útiles, permanecen lejos de ser enteros. La librería
las plataformas y se completa con una amplia gama de widgets
tkinter.tix da la mayor parte de los widgets mas necesarios que
necesarios para las tareas más comunes (botones, etiquetas,
faltan en Tk estándar: HList, ComboBox, Control y un surtido
lienzos de dibujo, texto de variables líneas, etc.)
de widgets desplazables. Tkinter.tix además incluye varios
D. Averigua sobre el uso de Tkinter con Python, cuál es más widgets que son principalmente útiles en una extensa
su principio de funcionamiento. gama de aplicaciones: NoteBook, FileEntry, PanedWindow;
hay alrededor de 40.
Tkinter es un framework que nos ayudara con la creación de
GUIDs en la plataforma de Phyton, su uso se basa en su
principal ventaja, ya que viene preinstalado en Python y no G. Averigua cuantos y cuales son los tipos de widgets
hay necesidad de instalar una aplicación. Su funcionamiento que posee Tkinter.
se basa en un código de escritura que permitirá mediante su
Ttk viene con 18 widgets, doce de los cuales ya existían en
código representar GUIs modificando su tamaño, letra,
tkinter: Button, Checkbutton, Entry, Frame, Label, LabelFram
botones, widgets todo desde su librería tkinter.
e, Menubutton, PanedWindow, Radiobutton, Scale, Scrollbar
y Spinbox. Los otros seis son
También en el número de widgets que se incluyen y en la
nuevos: Combobox, Notebook, Progressbar, Separator, Sizegri
posibilidad de trabajar con estilos y temas, que permiten ahora
p y Treeview. Y todas ellas son subclases de Widget.
personalizar totalmente la estética de un programa.
Ventajas:
Label
Como se genera:
from tkinter import *
root = Tk()
label = Label(frame,text="¡Hola Mundo!")
label.pack()
root.mainloop() El lienzo es un área rectangular referida a hacer dibujos u
otros diseños complicados. Puede situar gráficos, escrito,
widgets o marcos en un lienzo.
Como se genera:
w = Canvas ( master, option=value, ... )
● Button ● CheckButton
● Entry
● Frame
● Listbox ● Scrollbar
El widget Listbox se utiliza para mostrar los elementos de la Este widget proporciona un controlador deslizante que se
lista al usuario. utiliza para implementar widgets de desplazamiento vertical,
Como se genera: como Listbox, Text y Canvas.
w = Listbox (padre, opciones) w = Scrollbar ( master, option, ... )
● Menú
● Text
root = Tk()
Los widgets de texto brindan capacidades avanzadas que le
menubar = Menu(root) permiten editar un texto de varias líneas y formatear la forma
root.config(menu=menubar) # Lo asignamos en que debe mostrarse, como cambiar su color y fuente.
a la base Como se genera:
w = Text ( master, option, ... )
root.mainloop()
Label
Ancla
mapa de bits
Mando
fg Un procedimiento que se llamará cada vez que el usuario
cambie el estado de este botón de verificación.
Si está mostrando texto o un mapa de bits en esta etiqueta, esta
opción especifica el color del texto. Si está mostrando un Cursor
mapa de bits, este es el color que aparecerá en la posición de Si establece esta opción en un nombre de cursor (flecha,
los bits 1 en el mapa de bits. punto, etc.), el cursor del mouse cambiará a ese patrón cuando
esté sobre el botón de verificación.
Exportación
De forma predeterminada, si selecciona texto dentro de un
widget de entrada, se exporta automáticamente al
portapapeles. Para evitar esta exportación, use exportselection
= 0.
Button
fondo activo
Canvas
Color de fondo cuando el botón está debajo del cursor.
activo
Color de primer plano cuando el botón está debajo del cursor.
bd
Ancho del borde en píxeles. El valor predeterminado es 2.
Confinar
Expresar Si es verdadero (el valor predeterminado), el lienzo no se
Establezca esta opción en DESACTIVADO para atenuar el puede desplazar fuera de la región de desplazamiento.
botón y hacer que no responda. Tiene el valor ACTIVE
cuando el mouse está sobre él. El valor predeterminado es Scrollregion
NORMAL. Una tupla (w, n, e, s) que define el tamaño del área en la que
se puede desplazar el lienzo, donde w es el lado izquierdo, n la
parte superior, e el lado derecho y s la parte inferior.
6
Yscrollcommand Ancho
Si el lienzo es desplazable, este atributo debe ser el método. El ancho predeterminado de un botón de verificación está
set () de la barra de desplazamiento vertical. determinado por el tamaño de la imagen o el texto
mostrado. Puede configurar esta opción para una cantidad de
caracteres y el botón de verificación siempre tendrá espacio
para esa cantidad de caracteres.
CheckButton
Listbox
Bd
El tamaño del borde alrededor del indicador. El valor
predeterminado es 2 píxeles.
Fuera de valor
Xscrollcommand
Normalmente, la variable de control asociada a un botón de
Se utiliza para permitir que el usuario se desplace
verificación se establecerá en 0 cuando esté desactivada
horizontalmente por el cuadro de lista.
(desactivada). Puede proporcionar un valor alternativo para el
estado desactivado estableciendo offvalue en ese valor.
Yscrollcommand
Se utiliza para permitir que el usuario se desplace
Onvalue
verticalmente por el cuadro de lista.
Normalmente, la variable de control asociada a un botón de
verificación se establecerá en 1 cuando esté establecido
(activado). Puede proporcionar un valor alternativo para el
estado activado estableciendo onvalue en ese valor.
Padx
Cuánto espacio dejar a la izquierda y derecha del botón de
verificación y el texto. El valor predeterminado es 1 píxel. Menú
Frame Arrancar
Normalmente, un menú se puede quitar, la primera posición
(posición 0) en la lista de opciones está ocupada por el
elemento de corte, y las opciones adicionales se agregan a
partir de la posición 1. Si establece el corte = 0, el menú no
tendrá una función de corte y se agregarán opciones a partir de
la posición 0.
Alivio Título
Con el valor predeterminado, relieve = PLANO, el botón de Normalmente, el título de una ventana de menú desprendible
verificación no se destaca de su fondo. Puede configurar esta será el mismo que el texto del botón de menú o la cascada que
opción en cualquiera de los otros estilos
7
conduce a este menú. Si desea cambiar el título de esa elementborderwidth = -1, lo que significa usar el valor de la
ventana, establezca la opción de título en esa cadena. opción borderwidth.
Saltar
Esta opción controla lo que sucede cuando un usuario arrastra
el control deslizante. Normalmente (salto = 0), cada pequeño
arrastre del control deslizante hace que se llame a la
devolución de llamada del comando. Si establece esta opción
en 1, la devolución de llamada no se llama hasta que el usuario
suelta el botón del mouse.
Scale
Mando Text
Un procedimiento que se llamará cada vez que se mueva el
control deslizante. A este procedimiento se le pasará un
argumento, el nuevo valor de escala. Si el control deslizante se
mueve rápidamente, es posible que no reciba una devolución
de llamada para cada posición posible, pero ciertamente Exportacion
recibirá una devolución de llamada cuando se establezca. Normalmente, el texto seleccionado dentro de un widget de
texto se exporta para ser la selección en el administrador de
Cursor ventanas. Establezca exportselection = 0 si no desea ese
Si establece esta opción en un nombre de cursor ( flecha, comportamiento.
punto, etc. ), el cursor del mouse cambiará a ese patrón cuando
esté sobre la escala. Fg
El color utilizado para el texto (y mapas de bits) dentro del
Dígitos widget. Puede cambiar el color de las regiones
La forma en que su programa lee el valor actual que se etiquetadas; esta opción es solo la predeterminada.
muestra en un widget de escala es a través de una variable de
control. La variable de control de una escala puede ser IntVar, Insertofftime
DoubleVar (flotante) o StringVar. Si es una variable de El número de milisegundos que el cursor de inserción está
cadena, la opción de dígitos controla cuántos dígitos se apagado durante su ciclo de parpadeo. Establezca esta opción
utilizarán cuando el valor de la escala numérica se convierta en cero para suprimir el parpadeo. El valor predeterminado es
en una cadena. 300.
IX. CONCLUSIÓN
#--------funciones--------
def numeroPulsado(num):
REFERENCIAS global operacion
[1] G. O. Young, “Synthetic structure of industrial plastics (Book style with
paper title and editor),” in Plastics, 2nd ed. vol. 3, J. Peters, Ed.
operacion=operacion+str(num)
New York: McGraw-Hill, 1964, pp. 15–64. numeroPantalla.set(operacion)
[2] W.-K. Chen, Linear Networks and Systems (Book style). Belmont,
CA: Wadsworth, 1993, pp. 123–135. def el_resultado():
[3] H. Poor, An Introduction to Signal Detection and Estimation. global operacion
New York: Springer-Verlag, 1985, ch. 4.
[4] B. Smith, “An approach to graphs of linear forms (Unpublished work try:
style),” unpublished. resul=str(eval(operacion))
[5] 876—880. Available: http://www.halcyon.com/pub/journals/21ps03-
numeroPantalla.set(resul)
vidmar operacion=resul
X. ANEXOS except:
numeroPantalla.set("Error")
operacion=""
def keep():
En la interfaz gráfica diseñada para la aplicación de global operacion
simulación de una calculadora añadir: operacion=("")
numeroPantalla.set("0")
def borra():
global operacion
operacion=operacion[:-1]
numeroPantalla.set(operacion)
● Un botón que permita borrar un valor
#------------pantalla-----------
numérico ingresado erróneamente.
numeroPantalla=StringVar()
● Visualizar por defecto el número cero
pantalla=Entry(miFrame, textvariable=numero
análogamente a la función de la calculadora de
un pc. Pantalla)
● Permitir operaciones con números decimales. pantalla.grid(row=1, column=1, padx=10, pad
y=10, columnspan=4)
pantalla.config(background="black", fg="#03
f943", justify="right")
#-----------fila 1---------
boton7=Button(miFrame, text="7", width=3,
command=lambda:numeroPulsado(7))
boton7.grid(row=2, column=1)
boton8=Button(miFrame, text="8", width=3,
command=lambda:numeroPulsado(8))
boton8.grid(row=2, column=2)
Código:
boton9=Button(miFrame, text="9", width=3,
command=lambda:numeroPulsado(9))
boton9.grid(row=2, column=3)
botonDiv=Button(miFrame, text="/", width=3,
from tkinter import*
command=lambda:numeroPulsado("/"))
from math import*
botonDiv.grid(row=2, column=4)
import tkinter.messagebox
#-----------fila 2---------
raiz=Tk()
boton4=Button(miFrame, text="4", width=3, c
miFrame=Frame(raiz)
ommand=lambda:numeroPulsado(4))
miFrame.pack()
boton4.grid(row=3, column=1)
operacion=""
9
boton5=Button(miFrame, text="5", width=3, c
ommand=lambda:numeroPulsado(5))
boton5.grid(row=3, column=2) ● Añadir un icono al archivo ejecutable de la
boton6=Button(miFrame, text="6", width=3, c aplicación.
ommand=lambda:numeroPulsado(6))
boton6.grid(row=3, column=3)
botonMul=Button(miFrame, text="x", width=3,
command=lambda:numeroPulsado("*"))
botonMul.grid(row=3, column=4)
#-----------fila 3---------
boton1=Button(miFrame, text="1", width=3, c
ommand=lambda:numeroPulsado(1))
boton1.grid(row=4, column=1)
boton2=Button(miFrame, text="2", width=3, c
ommand=lambda:numeroPulsado(2))
boton2.grid(row=4, column=2)
boton3=Button(miFrame, text="3", width=3, c
ommand=lambda:numeroPulsado(3))
boton3.grid(row=4, column=3)
botonRest=Button(miFrame, text="-", width=3
, command=lambda:numeroPulsado("-"))
botonRest.grid(row=4, column=4)
#-----------fila 4---------
boton0=Button(miFrame, text="0", width=3, c
ommand=lambda:numeroPulsado(0))
boton0.grid(row=5, column=1)
botonPunto=Button(miFrame, text=".", width=
3, command=lambda:numeroPulsado("."))
botonPunto.grid(row=5, column=2)
botonIgual=Button(miFrame, text="=", width=
3, command=el_resultado)
botonIgual.grid(row=5, column=3)
botonSum=Button(miFrame, text="+", width=3,
command=lambda:numeroPulsado("+"))
botonSum.grid(row=5, column=4)
#------------fila 5----------------
botonBorra=Button(miFrame, text="<----", wi
dth=3, command=borra)
botonBorra.grid(row=6, column=2, columnspan
=2)
keep()
raiz.mainloop()
10