Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario/Email:
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Últimos temas
Tkinter base de datos
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
10-12-2018, 09:27 PM
» Respuestas: 1
» Vistas: 32
[Tkinter][Python 3.6] Car...
Foro: Aplicaciones de escritorio
Último mensaje por: alfredo89
10-12-2018, 11:38 AM
» Respuestas: 0
» Vistas: 16
¿Nociones básicas para ap...
Foro: General
Último mensaje por: Francisco
10-12-2018, 02:10 AM
» Respuestas: 1
» Vistas: 31
[Tkinter][Python 3.6] Con...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
05-12-2018, 02:24 AM
» Respuestas: 3
» Vistas: 70
Input con valor definido ...
Foro: Windows
Último mensaje por: Francisco
30-11-2018, 12:48 PM
» Respuestas: 3
» Vistas: 109
Ayuda Anaconda Me resalta...
Foro: General
Último mensaje por: sergiospano
26-11-2018, 03:43 PM
» Respuestas: 3
» Vistas: 861
Practica calcular porcent...
Foro: General
Último mensaje por: Francisco
25-11-2018, 03:24 PM
» Respuestas: 1
» Vistas: 163
Ecualizador en python
Foro: Visualización y análisis de datos
Último mensaje por: Francisco
23-11-2018, 07:19 PM
» Respuestas: 1
» Vistas: 119
¿Cómo calcular la profund...
Foro: Videojuegos y multimedia
Último mensaje por: Francisco
23-11-2018, 07:17 PM
» Respuestas: 3
» Vistas: 185
Error con Pyinstaller y P...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
16-11-2018, 09:04 PM
» Respuestas: 1
» Vistas: 164

 
  Tkinter base de datos
Enviado por: eliseo_nks - 10-12-2018, 12:59 PM - Foro: Aplicaciones de escritorio - Respuestas (1)

Buen dia!!! Necesito de su ayuda, estoy trabajando con Tkinter, el boton agregar de la pestaña agregar alumno no vincula con la base de datos para que modifique o agregue alumno

Código:
#---coding: utf-8 -------

import sys
import time
import sqlite3 as db
import tkinter.messagebox as tkMessageBox

try:
   from Tkinter import *
except ImportError:
   from tkinter import *

try:
   import ttk
   py3 = False
except ImportError:
   import tkinter.ttk as ttk
   py3 = True


def comenzar_ventana():
   
   global vent2, ventana1
   ventana1 = Tk()
   marcoventanainicial = Ventana (ventana1)
   ventana1.mainloop()
   
   

vent2 = None

def Ventana(ventana1):
   
   global vent2, w_win, vent1, pestagregar
   vent1 = ventana1
   vent2 = marcoventanainiciallevel (ventana1)
   marcoventanainicial = Ventana (vent2)
   return (vent2, marcoventanainicial)

def destroy_Ventana():
   global vent2
   vent2.destroy()
   #vent2 = None
 
fecha=time.strftime("Hoy es : %d-%m-%Y\nes la hora : %H:%M")
#db_base = "Cooperadora.s3db"
class Ventana:
       
   def __init__(self, marcoventanainicial):
   
       _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
       _fgcolor = '#000000'  # X11 color: 'black'
       _compcolor = '#d9d9d9' # X11 color: 'gray85'
       _ana1color = '#d9d9d9' # X11 color: 'gray85'
       _ana2color = '#d9d9d9' # X11 color: 'gray85'
       font10 = "-family {Courier New} -size 10 -weight normal -slant"  \
           " roman -underline 0 -overstrike 0"
       font11 = "-family {Wide Latin} -size 24 -weight normal -slant "  \
           "roman -underline 0 -overstrike 0"
       estiloVentana = ttk.Style()
       estiloVentana.theme_use('winnative')
       estiloVentana.configure(".",background=_bgcolor,foreground=_fgcolor,font="TkDefaultFont")
       estiloVentana.map('.',background=[('selected', _compcolor), ('active',_ana2color)])
       
       marcoventanainicial.geometry("996x516+6+3")
       marcoventanainicial.title("programacion 2018")

#************recuadro azul y titulo***************************************************
       cuadrotitulo = Frame(marcoventanainicial)
       cuadrotitulo.place(relx=0.01, rely=0.019, relheight=0.145, relwidth=0.985)
       cuadrotitulo.configure(background="#3253d8")
       titulo1 = Label(cuadrotitulo)
       titulo1.place(relx=0.02, rely=0.0, height=51, width=964)
       titulo1.configure(font=font11, background="#3253d8", text="COOPERADORA")
       
       titulo2 = Label(cuadrotitulo)
       titulo2.place(x=0, y=0)
       titulo2.configure(font=font10, background="#3253d8", text=fecha)
       
       
#*******************recuadro de botones**********************************************
       botones = Frame(marcoventanainicial)
       botones.place(relx=0.01, rely=0.174, relheight=0.7, relwidth=0.126)
       botones.configure(relief=GROOVE, borderwidth="6", background="#d9d9d9", highlightcolor ="black", width=125)
       
#******************botones izquierda**************************************************
       agregar = Button(botones)
       agregar.place(relx=0.16, rely=0.022, height=24, width=87)
       agregar.configure(background="#d9d9d9", text="Alumnos", command = self.pestagregar )
       
       cuotas = Button(botones)
       cuotas.place(relx=0.16, rely=0.09, height=24, width=87)
       cuotas.configure(background="#d9d9d9", text="Cuotas", command=self.pestacuota)
       
       configurar = Button(botones)
       configurar.place(relx=0.16, rely=0.157, height=24, width=87)
       configurar.configure(background="#d9d9d9", text="Configuracion")
       
       contabilidad = Button(botones)
       contabilidad.place(relx=0.16, rely=0.225, height=24, width=87)
       contabilidad.configure(background="#d9d9d9", text="Contabilidad")
       
       salir = Button(botones)
       salir.place(relx=0.16, rely=0.292, height=24, width=87)
       salir.configure(text="Salir", background="#d9d9d9", command = marcoventanainicial.destroy)
       #salir.configure(text="Salir", background="#d9d9d9", command = self.Exit)
#****************************************************************************************        
#*****************pestañas*****************************************************
       estiloVentana.configure('TNotebook.Tab', background=_bgcolor, foreground=_fgcolor)
       estiloVentana.map('TNotebook.Tab', background=[('selected', _compcolor), ('active',_ana2color)])
       self.pestagregar()
       self.tablax()
       self.leerdb()
             
#**********************************************************************************        
# (pestaña agregar)

   def pestagregar(marcoventanainicial):
       pestaña = ttk.Notebook()
       pestaña.place(relx=0.151, rely=0.174, relheight=0.186, relwidth=0.84)
       pestaña.configure(width=854, takefocus="")
       pestaña_t0 = Frame(pestaña)
       
       pestaña.add(pestaña_t0, padding=3)
       pestaña.tab(0, text="\t\tAgregar Alumno\t\t\t",compound="right",underline="-1",)
       pestaña_t0.configure(background="#d9d9d9")
#boton de  AGREGAR de la pestaña Agregar
       botpestagregar = ttk.Button(pestaña_t0)
       botpestagregar.place(relx=0.882, rely=0.286, height=35, width=76)
       #botpestagregar.configure(text="Agregar", command = self.agregadb)
       botpestagregar.configure(text="Agregar")
#cuadro de entrada de apellido
       etiqapellido = Label(pestaña_t0, text="APELLIDO")
       etiqapellido.place(relx=0.047, rely=0.01, height=20, width=204)
       etiqapellido.configure(background="#d9d9d9")
       cuadrentrapellido = Entry(pestaña_t0)
       cuadrentrapellido.focus()
       cuadrentrapellido.place(relx=0.035, rely=0.429,height=20, relwidth=0.264)
       cuadrentrapellido.configure(background="YellowGreen",font="font10")
       #self.cuadrentrapellido.configure(takefocus="0")
#cuadro de entrada de nombre
       etiqnombre = Label(pestaña_t0, text="NOMBRE")
       etiqnombre.place(relx=0.340, rely=0.1, height=20, width=204)
       etiqnombre.configure(background="#d9d9d9")
       cuadrentrnombre = Entry(pestaña_t0)
       cuadrentrnombre.place(relx=0.300, rely=0.429,height=20, relwidth=0.364)
       cuadrentrnombre.configure(background="YellowGreen",font="font10")
       #self.cuadrentrnombre.configure(takefocus="0")
#cuadro de entrada de dni
       etiqdni = Label(pestaña_t0,text="DNI")
       etiqdni.place(relx=0.650, rely=0.0, height=20, width=124)
       etiqdni.configure(background="#d9d9d9")
       cuadrentrdni = Entry(pestaña_t0)
       cuadrentrdni.place(relx=0.665, rely=0.429,height=20, relwidth=0.150)
       cuadrentrdni.configure(background="YellowGreen",font="font10")
       #self.cuadrentrdni.configure(takefocus="0")
#(pestaña editar)
       pestaña_t1 = Frame(pestaña)
       pestaña.add(pestaña_t1, padding=3)
       pestaña.tab(1, text="\t\tEditar\t\t\t",compound="bottom",underline="-1",)
       pestaña_t1.configure(background="#d9d9d9")
#boton de  BUSCAR de la pestaña EDITAR
       botpestagregar = ttk.Button(pestaña_t1, text="Buscar")
       botpestagregar.place(relx=0.4, rely=0.286, height=35, width=76)

#boton de  SELECCIONAR de la pestaña EDITAR
       botpestagregar = ttk.Button(pestaña_t1,text="Seleccionar")
       botpestagregar.place(relx=0.7, rely=0.286, height=35, width=76)
       botpestagregar.configure(takefocus="")
#cuadro de entrada de dni
       etiqdni = Label(pestaña_t1,text="DNI")
       etiqdni.place(relx=0.050, rely=0.0, height=20, width=124)
       etiqdni.configure(background="#d9d9d9")
       cuadrentrdni = Entry(pestaña_t1)
       cuadrentrdni.place(relx=0.065, rely=0.429,height=20, relwidth=0.150)
       cuadrentrdni.focus()
       cuadrentrdni.configure(background="YellowGreen",font="font10")
       #self.cuadrentrdni.configure(takefocus="0")
           
#(pestaña ver)
       pestaña_t2 = Frame(pestaña)
       pestaña.add(pestaña_t2, padding=3)
       pestaña.tab(2, text="\t\t\tVer\t\t\t",compound="bottom",underline="-1",)
       pestaña_t2.configure(background="#d9d9d9")
#*********************************************************************************************
   def pestacuota(marcoventanainicial):
       pestaña = ttk.Notebook()
       pestaña.place(relx=0.151, rely=0.174, relheight=0.186, relwidth=0.84)
       pestaña.configure(width=854, takefocus="")
#(pestaña hisorial de pago)
       pestaña_t0 = Frame(pestaña)
       pestaña.add(pestaña_t0, padding=3)
       pestaña.tab(0, text="\t\t\tHistorial de pago\t\t\t",compound="bottom",underline="-1",)
       pestaña_t0.configure(background="#d9d9d9")
#boton de  BUSCAR de la pestaña EDITAR
       botpestagregar = ttk.Button(pestaña_t0, text="Buscar")
       botpestagregar.place(relx=0.4, rely=0.286, height=35, width=76)

#boton de  SELECCIONAR de la pestaña EDITAR
       botpestagregar = ttk.Button(pestaña_t0,text="Seleccionar")
       botpestagregar.place(relx=0.7, rely=0.286, height=35, width=76)
       botpestagregar.configure(takefocus="")
#cuadro de entrada de dni
       etiqdni = Label(pestaña_t0,text="DNI")
       etiqdni.place(relx=0.050, rely=0.0, height=20, width=124)
       etiqdni.configure(background="#d9d9d9")
       cuadrentrdni = Entry(pestaña_t0)
       cuadrentrdni.place(relx=0.065, rely=0.429,height=20, relwidth=0.150)
       cuadrentrdni.focus()
       cuadrentrdni.configure(background="YellowGreen",font="font10")
       #self.cuadrentrdni.configure(takefocus="0")
           
#(pestaña ver)
       pestaña_t1 = Frame(pestaña)
       pestaña.add(pestaña_t1, padding=3)
       pestaña.tab(1, text="\t\t\tVer\t\t\t",compound="bottom",underline="-1",)
       pestaña_t1.configure(background="#d9d9d9")

   def tablax(self):
       self.tabla = ttk.Treeview(columns=("Orden", "Apellido", "Nombre", "DNI"), selectmode="extended", height=500)
       self.tabla.place(relx=0.151, rely=0.368, relheight=0.624, relwidth=0.835)
       self.tabla.heading('Orden', text="Orden", anchor=W)
       self.tabla.heading('Apellido', text="Apellido", anchor=W)
       self.tabla.heading('Nombre', text="Nombre", anchor=W)
       self.tabla.heading('DNI', text="DNI", anchor=W)
       self.tabla.column('#0', stretch=NO, minwidth=0, width=0)
       self.tabla.column('#1', stretch=NO, minwidth=0, width=80)
       self.tabla.column('#2', stretch=NO, minwidth=0, width=300)
       self.tabla.column('#3', stretch=NO, minwidth=0, width=330)
       self.tabla.column('#4', stretch=NO, minwidth=0, width=120)

       
# ****************operar con la base de datos Cooperadora.s3db******
       
   
   def conectardb(self,traer, datos =()):
       self.db_base = "Cooperadora.s3db"
       conexion= db.connect(self.db_base)
       cursor = conexion.cursor()
       result=cursor.execute(traer, datos)
       conexion.commit()
       return result
   def leerdb(self):
# borrar tabla
       memoria =self.tabla.get_children()
       for elementos in memoria:
           self.tabla.delete(elementos)
#consulta de datos
       traer = "SELECT *FROM Alumnos ORDER BY Orden ASC"
       filas = self.conectardb(traer)
#rellenando los datos
       for fila in filas:
          #print(fila)  muestra datos en consola
          self.tabla.insert('', 'end', values=(fila[0], fila[1], fila[2],fila[3]))
# agregar datos desde cuadro de entrada
   
   # ~ def agregadb(self):

       # ~ if  cuadrentrapellido.get() == "" or cuadrentrnombre.get() == "" or cuadrentrdni.get() == "":
           # ~ txt_result.config(text="Complete todos los campos requeridos!!!!", fg="red")
       # ~ else:
           # ~ conectardb()
           # ~ cursor.execute("INSERT INTO 'Alumnos' (Apellido, Nombre, DNI) VALUES(?, ?, ?)", (str(cuadrentrapellido.get()), str(cuadrentrnombre.get()), str(cuadrentrdni.get()))
           # ~ #conexion.commit()
           
   def validation(self):
       return len(self.cuadrentrapellido.get()) !=0 or len(self.cuadrentrnombre.get())!=0 or len(self.cuadrentrdni.get())!=0
   def agregadb(self):
       if self.validation():
           traer = "INSERT INTO Alumnos VALUES(NULL, ?, ?, ?)"
           datos = (self.cuadrentrapellido.get(), self.cuadrentrnombre.get(), self.cuadrentrdni.get())
           self.conectardb(traer, datos)
           self.mensaje["text"] = "Se ha incorporado a {} exitosamente".format(self.cuadrentrapellido.get())
       else:
           self.mensaje["text"] = "...no se ha ingresado datos. Vuelva a cargar datos por favor"
       self.leerdb()  
   
 
   
   
     
   def Exit(self):
       result = tkMessageBox.askquestion('Cooperadora', 'Me vas a aprobar?\n Daaaale aprobame ...por favooooooo', icon="warning")
       if result == 'yes':
          ventana1.destroy()
          exit()

 
if __name__ == '__main__':
   comenzar_ventana()

Imprimir

  [Tkinter][Python 3.6] Cargar Dataframe en segundo plano
Enviado por: alfredo89 - 10-12-2018, 11:38 AM - Foro: Aplicaciones de escritorio - Sin respuestas

Tengo una pequeña herramienta realizada en pthon 3.6 en la que utilizo pandas para cargar dataframes. Quiero cargar un archivo .xlsx muy grande, con unos 200.000 registros y utilizo: "

file = pd.read_excel('archivo.xlsx')"

Esto tarda mucho y me deja la herramienta bloqueada unos 20 o 30 segundos, hay alguna manera de lanzar ese proceso en segundo plano cuando arranque la herramienta y que cuando necesite utilizar ese dataframe ya esté cargado?

Imprimir

  ¿Nociones básicas para aprender sobre árboles?
Enviado por: Storm - 09-12-2018, 04:26 PM - Foro: General - Respuestas (1)

Hola de nuevo!

Quiero aprender sobre las estructuras de datos arboles. No quiero utilizar modulos externos o demasiado avanzados. Osea, quiero crearlos desde cero. El tipico arbol binario y otros de decision. Pero claro, antes de iniciarme quiero saber que estructuras o recursos de programacion necesito saber primero.

Se suele recomendar primero comprender la recursividad. Sobre esta, se lo tipico: el calculo del factorial y los numeros de fibonacci. Luego esta el tema de pilas y colas. Y como no, los grafos. La duda esta en saber que estudiar primero. Todo ello lo quiero aprender, como digo, desde cero. Para tener buenos cimientos. He googleado un poco y cuando explican el tema de arboles, para mi, es muy avanzado. Suelen importar librerias donde la mayoria de las veces los arboles ya estan implementados. Y asi, poco aprendo sobre su estructura y creacion.

Tambien se suele hacer hincapie en conocer la pila de ejecucion de la llamada de las funciones. Mas que nada para comprender la recursividad. No se si estoy en lo correcto.

Se que ahora hay muchos cursos de machine learning e IA. Pero como comento, demasiado avanzados para mi. Ya que casi dejan de la lado los temas basicos y empiezan con la ecuaciones y fisica cuantica.

Ha decir verdad, echo un poco en falta dar a conocer estos temas desde cero. Con ejemplos sencillos y sin la importacion de dichos modulos mas avanzados. Me refiero, claro, para la gente que empieza.

Bueno, igual me he enrollao un poco.

A ver este orden de aprendizaje si es correcto:

- Recursividad
- Pilas y Colas
- Nodos
- Listas enlazadas
- Arboles binarios / decision

Un saludo! Smile

Imprimir

  [Tkinter][Python 3.6] Convertir Canvas a PDF
Enviado por: alfredo89 - 03-12-2018, 05:19 PM - Foro: Aplicaciones de escritorio - Respuestas (3)

Tengo una pequeña herramienta que genera unos gráficos y los muestro en un Canvas. Me gustaría crear un archivo PDF generado a partir del canvas, estoy intentando esta solución  pero no me funciona:

https://stackoverflow.com/questions/1787...o-pdf?lq=1

Hay alguna biblioteca para hacer esto que quiero?

PD: El canvas tiene scroll.

Imprimir

  Input con valor definido y editable
Enviado por: gabriel - 29-11-2018, 05:18 PM - Foro: Windows - Respuestas (3)

Hola, estoy haciendo una pequeña aplicación de consola (cmd) en una PC con Windows y debo usar algunos INPUT. Quisiera que me apareciera un valor por defecto y que este sea editable. Por ejemplo:

Nombre de la carpeta: descargas


Y "descargas" pueda ser modificado al vuelo.


Usando un Input normal esto no es posible.

La idea que tengo es la de memorizar las opciones que he elegido en un file de configuración y que después estas me aparezcan.

Yo uso Python 3.6. En Internet he encontrado una persona que pregunta lo mismo pero la soluciones que proponen no funcionan en Windows y con Python 3.
Este es el link:

https://stackoverflow.com/questions/2533...t-possible

¿Pueden ayudarme?
Gracias.

Imprimir

Question Practica calcular porcentaje en diccionarios
Enviado por: maxcom - 24-11-2018, 07:32 PM - Foro: General - Respuestas (1)

Saludos estoy en busca de ayuda ya que estoy comenzando en Python y ya me encuentro atascado en este ejercicio que me enviaron..
Estoy utilizando el Sublime Text 3

El propósito del ejercicio es simplemente hacer una copia exacta y comentar las lineas explicando que es lo que sucede en cada linea de código, Pero me encuentro con problemas apenas me puse a copiarlo me di cuenta que el ejercicio original la faltaban paracentesis en los PRINT por lo que diside ponérselos,.. pero ahora me encuentro con un error en la linea 13 que no logro descifrar..
y solo logre comentar hasta la linea 8 que es hasta donde entiendo...

Código:
porc = input("Introduzca un numero: ") #solicitando al usuario un numero
producto = {"Arroz" : 1000, "Harina" : 200, "Azucar" : 500, 
            "Pasta" : 3500} #creando un diccionario
Clave = producto.keys() #accediendo a la clave
valor = producto.values() #accediendo al valor
print(Clave) # imprimiendo la clave almacenada
print(valor) # imprimiendo el valor
suma1 = 0
for i in valor:
    suma1 += i
format = '%-*s%*.2f'
aumentos = valor
aumentos[0] = (valor[0]*porc)/100+aumentos[0]
aumentos[1] = (valor[1]*porc)/100+aumentos[1]
aumentos[2] = (valor[2]*porc)/100+aumentos[2]
aumentos[3] = (valor[3]*porc)/100+aumentos[3]
print(aumentos)
print("Porcentaje de aumentos: ", "{:,.2f}".format(porc))
print ("----------------------------------")
print (aumentos)
print ("----------------------------------")
suma = 0
for i in aumentos:
    suma += i
print ("La suma de los precios a la fecha: ", "{:,.2f}".format(suma1))
print ("La suma de los precios aumento: ", "{:,.2f}".format(suma))
diferencia = suma - suma1
print ("La diferencia es: ", "{:,.2f}".format(diferencia))
  

así se ve en sublime text
   


Y así me lo mandaron
   
así es como debería quedar cuando lo ejecuta:
   

Imprimir

  Ecualizador en python
Enviado por: William - 23-11-2018, 01:30 AM - Foro: Visualización y análisis de datos - Respuestas (1)

Que tengan un muy buen día o noche donde estén.

Quiero conocer acerca de como empezar a hacer un ecualizador en python, primero necesito saber que librería usar para subir la información al programa (Audio) y como pasar ese audio por distintos filtros, pasa bajos, pasa altos, pasa banda, rechaza banda.

cualquier información sera de mucha ayuda
muchas gracias.

Imprimir

  ¿Cómo calcular la profundidad de imagenes en pygame?
Enviado por: Storm - 22-11-2018, 06:35 PM - Foro: Videojuegos y multimedia - Respuestas (3)

Hola de nuevo Smile 

Tengo un pequeño código que simula una gravedad básica y muy simple. Al ejecutar el script nuestro personaje, un cuadrado azul, desciende hasta tocar el suelo. En este caso de color rojo. Cuando toca el suelo a veces aparece por detrás o por delante del mismo. Y pasa igual con la escalera, de color verde. Unas veces pasa por delante de la misma y otras por detrás. Diria que de forma aleatoria.

Al colisionar con la escalera podemos subir y bajar con las teclas del cursor. Si movemos a izquierda o derecha, caemos por la gravedad. Cuando tocamos el suelo no podemos subir si no tocamos la escalera. Algo lógico que he programado asi. Aunque, misteriosamente, nuestro personaje pega un saltito.

Las dos cosas que no me gustan es lo que comento:
- Que no hay una jerarquia clara de las profundidades de cada imagen.
- Que cuando colisionamos con el suelo, nuestro personaje, se queda hundido en el mismo. No sobre el suelo.

He usado las clases y los grupos de objetos. Pero por muchas combinaciones que hago, no resuelvo el problema de profundidad que cada imagen o superficie quiero que tenga.

He juntado las clases en el mismo script principal para que quede mas claro en el foro.


Código:
import pygame
import sys


#Inicializamos pygame
pygame.init()

# CLASES
class Personaje(pygame.sprite.Sprite):
   def __init__(self, x, y, ancho, alto, color):
       super().__init__()        
       self.image = pygame.Surface([ancho, alto])
       self.image.fill(color)
       self.rect = self.image.get_rect()
       self.rect.x = x
       self.rect.y = y
       self.velocidad = 8
       self.gravedad = 8
       self.parar = False    
   # Movimientos personaje
   def izquierda(self, pixels):
       self.rect.x -= self.velocidad    
   def derecha(self, pixels):
       self.rect.x += self.velocidad        
   def arriba(self, pixels):
       self.rect.y -= self.velocidad        
   def abajo(self, pixels):
       self.rect.y += self.velocidad        
   # Parar
   def stop(self):
       self.parar = True        
   # No parar
   def nonStop(self):
       self.parar = False              
   # Update
   def update(self):
       if self.parar:
           self.rect.y += 0
       else:
           self.rect.y += self.gravedad

class Decorado(pygame.sprite.Sprite):
   def __init__(self, x, y, ancho, alto, color):
       super().__init__()
       self.image = pygame.Surface((ancho, alto))
       self.image.fill(color)
       self.rect = self.image.get_rect()
       self.rect.x = x
       self.rect.y = y


NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
VERDE = (0, 255, 0)
ROJO = (255, 0, 0)
AZUL = (0, 0, 255)
ventana = pygame.display.set_mode((1024, 720))
pygame.display.set_caption("Titulo de ventana")

# GRUPOS
objetosTotales = pygame.sprite.Group()
objetosSuelo = pygame.sprite.Group()
objetosEscalera = pygame.sprite.Group()

# OBJETOS
suelo = Decorado(0, 640, 1024, 32, ROJO)
escalera = Decorado(100, 300, 32, 400, VERDE)
jugador = Personaje(0, 0, 32, 32, AZUL)
monitor = Decorado(600, 10, 300, 50, BLANCO)

# GRUPOS DE OBJETOS
objetosSuelo.add(suelo)
objetosEscalera.add(escalera)
objetosTotales.add(suelo, escalera, jugador, monitor)

# TEXTO
fuente = pygame.font.SysFont('Consolas', 20)

#Bucle de "Juego"
reloj = pygame.time.Clock()
salir = False
cambio_y = 0
subir = False
while not salir:
   for event in pygame.event.get():
       if event.type == pygame.QUIT:
           salir = True    
   tecla = pygame.key.get_pressed()
   if tecla[pygame.K_LEFT]:
       jugador.izquierda(4)
   if tecla[pygame.K_RIGHT]:
       jugador.derecha(4)
   if tecla[pygame.K_UP] and subir == True:
       jugador.arriba(4)      
   if tecla[pygame.K_DOWN]:
       jugador.abajo(4)
           
   # LOGICA    
   colisiones =  pygame.sprite.spritecollide(jugador, objetosSuelo, False)
   for objeto in colisiones:              
       if jugador.rect.bottom >= objeto.rect.top:            
           jugador.rect.bottom = objeto.rect.top
           jugador.stop()    
   if pygame.sprite.spritecollideany(jugador, objetosEscalera):        
       subir = True
       jugador.stop()
   else:
       jugador.nonStop()      
   
   # UPDATE
   objetosTotales.update()    
   
   # DIBUJO DE PANTALLA
   ventana.fill(NEGRO)
   
   text1, text2 = 'jugador.rect.bottom: {}', 'suelo.rect.top: {}'
   coord_1 = fuente.render(text1.format(str(jugador.rect.bottom)), True, NEGRO)
   coord_2= fuente.render(text2.format(str(suelo.rect.top)), True, NEGRO)
   
   # DIBUJO DE SPRITES
   objetosTotales.draw(ventana)
   ventana.blit(coord_1, (600, 10))
   ventana.blit(coord_2, (600, 30))
       
   # ACTUALIZACION DE PANTALLA
   pygame.display.flip()
   reloj.tick(60)



pygame.quit()
sys.exit()

Un saludo y gracias!

Imprimir

  Error con Pyinstaller y PyQt5
Enviado por: alfredo89 - 15-11-2018, 08:55 PM - Foro: Aplicaciones de escritorio - Respuestas (1)

favorito

Trabajo con Anaconda 5.3.0 y Python 3.7.
He realizado una aplicación y quiero crear un ejecutable con Pyinstaller, el caso es que me salta el siguiente error:

Código:
Exception:
Cannot find existing PyQt5 plugin directories
Paths checked: C:/Miniconda3/conda-bld/qt_1535195524645/_h_env/Library/plugins

Me parece muy raro porque esa ruta no existe en mi PC y no uso la librería PyQt5 en mi aplicación.
¿Alguien sabe como puedo solucionarlo por favor? Gracias.

Imprimir

  Listas de 2 dimensiones en Python sin NumPy?
Enviado por: konniskatt - 13-11-2018, 11:22 PM - Foro: General - Respuestas (1)

Pues quiero portear un código de C a Python, pero el problema es que usa una lista (o array en este caso) de dos dimensiones.
En Python, que entienda, no es posible, pero hay una forma y sin numpy?
Saludos

Imprimir