Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - XD YO

#1
Hola, estaba viendo como hacer Interfases gráficas con Tkinter usando clases, y estaba creando un sencillo programa para ver por donde va el asunto :).

Código (python) [Seleccionar]

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
from Tkinter import*
import tkFont

def donothing():
   filewin = Toplevel(self)
   button = Button(filewin, text="Funcion sin asignar")
   button.pack()

class V_ecol(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master) #generando un marco
        self.grid() #empaquetando usando grid
        self.createWidgets()#llama a un metodo que crea lo que contendra la ventana.
        self.menus#Lama un metodo que crea un menu
    def createWidgets(self):
        #generacion del contenido de la interfaz
        self.quitButton = Button ( self, text="Salir", command=self.quit )
        self.quitButton.grid() #empaquetar boton
        #generando un tipo de letra para un Label
        helv36 = tkFont.Font ( family="Helvetica", size=36, weight="bold")
        # Un label
        self.etiqueta1 = Label(self,text="Una cadena",font=helv36, fg="red")
        #generando otro label
        self.etiqueta2 = Label(self,text="Otra cadena")
        #colocando los labels
        self.etiqueta1.grid(row=1, column=0, columnspan=2, rowspan=2)
        self.etiqueta2.grid(row=0,column=1)
    def menus(self):       
        self.menubar = Menu(self)
        self.filemenu = Menu(self.menubar, tearoff=0)
        self.filemenu.add_command(label="Nuevo", command=donothing,  )
        self.filemenu.add_command(label="Salir", command=self.quit,)
        self.menubar.add_cascade(label="Archivo", menu=self.filemenu)
        self.configure(menu=menubar)

#**********inicio del main**********************
app = V_ecol() # generando una instancia de la clase Application
app.master.title("Ventana") # definiendo titulo de la ventana principal
app.mainloop() # a la espera de eventos


El problema radica en que no aparece el menu

¿Que estoy haciendo mal?


PD.
Han escuchado de Pmw
#2
Buenas tardes.

Como no tenia nada mejor que hacer, solo grabarme algunas formulas de estadística, decidí crear un código en Python para realizar esos tres cálculos (Promedio Varianza y Desviación estándar), solo introduciendo los números separándolos por una coma

El código es el siguiente:
Código (python) [Seleccionar]

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
######Este es un "corto" programa para
######Calcular promedio; varianza y desviación estándar
######################################
def _promedio():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    A = len(lista)
    suma=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        vpp = Label(ventana, text="El promedio es de=\n"+str(p), justify=CENTER)
        vpp.grid(row=3, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar el promedio.\nIntrodusca más datos; gracias")
######################################
def _varianza():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    lista2 = []
    A = len(lista)
    suma=0
    varis=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        for j in range((A)):
            sumat = (lista[j]-p)**2
            lista2.append(sumat)
        for k in lista2:
            varis += k
        vari = varis
        va = ((vari+0.0)/(A+0.0))
        vp = Label(ventana, text="La varianza es de=\n"+str(va), justify=CENTER)
        vp.grid(row=4, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar la varianza.\nIntrodusca más datos; gracias")
###########################
def _desest():
    vcdda = cadenadedatos.get()
    vforlis = "["+vcdda+"]" ###esto me crea una cadena para formar mi lista
    lista = eval(vforlis) #esto trasforma mi cadena en lista
    lista2 = []
    A = len(lista)
    suma=0
    varis=0
    if A>1:
        for i in lista:
            suma += i
        p = ((suma+0.0)/(A+0.0))
        for j in range((A)):
             sumat = (lista[j]-p)**2
            lista2.append(sumat)
        for k in lista2:
            varis += k
        vari = varis
        va = sqrt((vari+0.0)/(A+0.0))
        vb = Label(ventana, text="La desviacion estandar es de=\n"+str(va), justify=CENTER)
        vb.grid(row=5, column=2,)
    else:
        tkMessageBox.showerror("Datos insuficientes", "No han sido incluidos suficientes datos como para realizar la desviación estándar.\n introduzca más datos; gracias")
####################
from math import*
from Tkinter import*
import tkMessageBox


ventana = Tk()
ventana.title("Cálculos estadísticos básicos")
####Definiendo algunas variables###
cadenadedatos = StringVar()
li = "Introduzca datos separándolos con una coma\nluego, pulse el botón del calculo a realizar\nGracias."
oA="Promedio"
oB="Varianza"
oC="Desviación\nEstándar"
#####Elementos de ventana####
ll = Label(ventana, text=li)
eli = Entry(ventana, textvariable=cadenadedatos, xscrollcommand=5)
b1 = Button(ventana, text=oA, command=_promedio)
b2 = Button(ventana, text=oB, command=_varianza)
b3 = Button(ventana, text=oC, command=_desest)
#### Conlocandolos en la grilla######
ll.grid(row=0, column=1, columnspan=3)
eli.grid(row=1, column=2)
b1.grid(row=2, column=1)
b2.grid(row=2, column=2)
b3.grid(row=2, column=3)
ventana.mainloop()


Y aquí unas vistas del programa:

Se aceptan sugerencias.  :D
#3
Buenas noches, Otra vez soy yo <s>molestando</s> preguntando sobre una duda.

Cuando un programa comienza a crecer, que es lo mas conveniente; hacer todas las funciones importantantes globales dentro del programa principal o definirlas cuando se nesesiten o no, organizar los programas en clases o en funciones dentro de funciones (y creo que es mil veces mejor en clases, pero no se).

Tambien agradeceria mucho, sus consejos en cosas que no haya considerando.

De antemano gracias:

#4
Hola, ha sido un largo tiempo sin pasarme por aqui  ;D.

Estoy intentando resolver el problema de las sumatorias de una serie de valores que contiene una lista, pero no logro encontrar una solución, ya que lo mas que e conseguido a sido sumar los dos primeros valores y después los dos siguiente y así sucesivamente  :-\.

Es para poder resolver de una forma menos tediosa los molestos problemas de estadística   >:D

De antemano, gracias
#5
Antes que nada Buenas noches a todos ;)

Siguiendo trabajando, la ventana que cree utilizando Tkinter ha quedado demasiado grande para la resolución de pantalla y pensé en añadir un scrollbar a un costado para hacerla mas pequeña y menos molesta; pero, después de estar gogleando durante un buen rato, la única información que encuentro (tanto en español como en ingles) solo dice como utilizarlo cuando se trata de una ventana ocupada completamente por un textarea o una lista muy grande; pero no dice como utilizarlo si lo que estoy manejando en la ventana son un conjunto de labels, textentris, radiobutons y/o butons.

¿Alguna idea de lo que se puede hacer?  :rolleyes:

De antemano, gracias por su tiempo.  ;)
#6
Hola a todos :)

Estaba trabajando aun en el programa que comente la otra vez, y pensé en ¿Como poder importar ventanas de otros archivos?. Esto vino a colación  ya que son demasiadas lineas de código como para escribir una función (si por pregunta son 4 texboxs y 4 radiobuttons... y son diez preguntas...  y el archivo pinta ya más de 200 :o)

Y la única solución practica que me pasa por la mente (si consideramos que la otra es pasar todo el código y después indentarlo.... ) pensé que lo mas sencillo seria que la función del programa llamase al otro archivo para después ejecutarlo todo sin más ni más.

¿O existe otra solución?

De antemano gracias.
#7
Hola, soy nuevo en este foro. Bueno, mi problema es que no tengo la menor idea de como conseguir o hacer la función de abrir una ventana nueva al oprimir un botón utilizando Tkinter.

He buscado, pero sinceramente no tengo la menor idea de como buscarlo (valga la rebusnancia).