HACKERS ELITE
Bienvenido a HACKERS ELITE
porfavor registrate o inicia secion para ver todo el contenido del foro, disfruta tu visita!

Unirse al foro, es rápido y fácil

HACKERS ELITE
Bienvenido a HACKERS ELITE
porfavor registrate o inicia secion para ver todo el contenido del foro, disfruta tu visita!
HACKERS ELITE
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Últimos temas
» Me bloquearon mi celular para conectarse a la Red Wifi en Modo Avion
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Sep 05, 2014 6:15 pm por JAVIER_77

» Hacker nostale
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 20, 2012 5:02 pm por Sweet_Boy

» Chrome OS 20.x pasa al canal estable
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 13, 2012 11:15 pm por [D]ement<<<

» Disponible openSUSE 12.2 RC 1
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 13, 2012 12:44 am por [D]ement<<<

» NitroShare, comparte archivos y carpetas entre Linux y Windows
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 13, 2012 12:26 am por [D]ement<<<

» Linux Mint 13 KDE Release Candidate, disponible
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 13, 2012 12:18 am por [D]ement<<<

» LibreOffice 3.5.5, más estabilidad
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeVie Jul 13, 2012 12:06 am por [D]ement<<<

» File History, un Time Machine para Windows 8
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeMiér Jul 11, 2012 9:50 pm por [D]ement<<<

» Como habilitar el logueo automático en Windows
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeMiér Jul 11, 2012 9:44 pm por [D]ement<<<

» Acronis True Image 2012
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeMar Jul 10, 2012 12:15 am por [D]ement<<<

» Virus Informaticos
[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo I_icon_minitimeMar Mayo 08, 2012 7:10 am por Sokoleonardo

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Abril 2024
LunMarMiérJueVieSábDom
1234567
891011121314
15161718192021
22232425262728
2930     

Calendario Calendario


[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

2 participantes

Ir abajo

[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo Empty [Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

Mensaje por Sokoleonardo Sáb Nov 12, 2011 2:32 pm

Echo en Python (Con el modulo Tk Para interfaz grafica)

Requiere Python 2.5.0, PyAudiere para Py2.5.0, PyWin32api para Py2.5.0 y Numpy.

[Tienes que estar registrado y conectado para ver esa imagen]

Código:

#!usr/bin/python
# -*- coding: utf-8 -*-

    #USE IN PYTHON 2.5.0
    #Requiere PyWin32
    #Numpy
    #PyAudiere

import tkFileDialog, cPickle
from tkMessageBox import showwarning
from platform import system as SystemOperating
from Tkinter import *
from os.path import getsize, exists, splitext
try:
    import audiere
except ImportError:
    import audiere #if not numpy multi array
   
if not exists("Save.PowerM"): #debe existir
    FILE = open("Save.PowerM","w")
    cPickle.dump([None,None,0,True,40,100,"Gray"],FILE)
    FILE.close()


def ColectionColors(Color):
    Gray = {"Fond":"gray25","ColorBands":"gray20","MarkButtons":"gray10","ColorButtons":"gray40","ColorTextLbFrame":"red",
            "ActiveColorButton":"gray15","LetterVar":"green","ResultInfo":"green2","FondListTracks":"gray10","HightLightBGListTracks":"gray25",
            "FGListTrackas":"green4","SelectFgListTracks":"orange","repeatTrack":"gray70"}
    Dawn = {"Fond":"OrangeRed","ColorBands":"firebrick2","MarkButtons":"red4","ColorButtons":"DarkOrange2","ColorTextLbFrame":"black",
            "ActiveColorButton":"DarkOrange","LetterVar":"red2","ResultInfo":"red","FondListTracks":"sienna2","HightLightBGListTracks":"OrangeRed",
            "FGListTrackas":"red4","SelectFgListTracks":"black","repeatTrack":"orange"}
    Forest = {"Fond":"SeaGreen","ColorBands":"SeaGreen3","MarkButtons":"SpringGreen4","ColorButtons":"SpringGreen","ColorTextLbFrame":"DarkOliveGreen2",
            "ActiveColorButton":"SpringGreen4","LetterVar":"green","ResultInfo":"#002800","FondListTracks":"CadetBlue4","HightLightBGListTracks":"SeaGreen",
            "FGListTrackas":"DarkOliveGreen2","SelectFgListTracks":"chartreuse","repeatTrack":"green2"}
    Gold = {"Fond":"gold3","ColorBands":"gold4","MarkButtons":"yellow4","ColorButtons":"gold","ColorTextLbFrame":"yellow",
            "ActiveColorButton":"yellow3","LetterVar":"goldenrod4","ResultInfo":"black","FondListTracks":"wheat3","HightLightBGListTracks":"gold3",
            "FGListTrackas":"orange4","SelectFgListTracks":"yellow","repeatTrack":"yellow2"}
    Water = {"Fond":"DeepSkyBlue","ColorBands":"DeepSkyBlue3","MarkButtons":"#0a1e78","ColorButtons":"#144682","ColorTextLbFrame":"blue",
            "ActiveColorButton":"#0a1e78","LetterVar":"white","ResultInfo":"white","FondListTracks":"aquamarine","HightLightBGListTracks":"DeepSkyBlue",
            "FGListTrackas":"blue","SelectFgListTracks":"DeepSkyBlue","repeatTrack":"DeepSkyBlue4"}
    if Color == "Gray":
        return Gray
    elif Color == "Dawn":
        return Dawn
    elif Color == "Forest":
        return Forest
    elif Color == "Gold":
        return Gold
    elif Color == "Water":
        return Water

class ConfigColors:
    def __init__(self):
        self.windowCustomizer = Tk()
        self.windowCustomizer.title("Custom PowerM")
        self.windowCustomizer.geometry("290x207+300+250")
        self.windowCustomizer.resizable(False,False)
        try:
            icon = "icon.ico" if SystemOperating()=="Windows" else "icon.png"
            self.windowCustomizer.iconbitmap(icon)
        except: pass
        Frame(self.windowCustomizer,width=290,height=400,bg="white").pack()
        Label(self.windowCustomizer,text="Custom color",bg="white",font=("Lucida","12","underline")).place(x=95,y=30)
        self.ColorButtons = Machine.ButtonOpen["bg"]
        self.ColorFond = Machine.Fond["bg"]
        self.ButtonColorGray = Button(self.windowCustomizer,text="Gray",bg="gray25",width=7,height=3,command=self.ChangeColorCallGray)
        self.ButtonColorGray.place(x=10,y=60)
        self.ButtonColorDawn = Button(self.windowCustomizer,text="Dawn",bg="OrangeRed",width=7,height=3,command=self.ChangeColorCallDawn)
        self.ButtonColorDawn.place(x=65,y=60)
        self.ButtonColorForest = Button(self.windowCustomizer,text="Forest",bg="SeaGreen",width=7,height=3,command=self.ChangeColorCallForest)
        self.ButtonColorForest.place(x=120,y=60)
        self.ButtonColorGold = Button(self.windowCustomizer,text="Gold",bg="gold3",width=7,height=3,command=self.ChangeColorCallGold)
        self.ButtonColorGold.place(x=175,y=60)
        self.ButtonColorWater = Button(self.windowCustomizer,text="Water",bg="DeepSkyBlue",width=7,height=3,command=self.ChanngeColorCallWater) #n, ne, e, se, s, sw, w, nw, or center
        self.ButtonColorWater.place(x=230,y=60)
        self.windowCustomizer.bind("<Destroy>",self.ExitCustom)
        #Ilustr:
        self.IconProgram = Label(self.windowCustomizer, bg="#143cd2", fg="black", relief="groove", width=17, height=14, anchor="w", bitmap="error")
        self.IconProgram.place(x=20,y=120)
        self.HeadProgram = Label(self.windowCustomizer, bg="#143cd2", fg="white", text="PowerM :: Stratovarius - Coming Ho...", relief="groove", width=37, height=1, font=("Lucida","7"), anchor="w")
        self.HeadProgram.place(x=40,y=120)
        self.ExitProgram = Label(self.HeadProgram, bg="#d23c1e", fg="white", text="X", relief="groove", width=3, height=1, font=("Lucida","6"))
        self.ExitProgram.place(x=204,y=-1)
        self.SizeProgram = Label(self.HeadProgram, bg="#143cd2", fg="blue", text="__", relief="groove", width=3, height=1, font=("Lucida","6"))
        self.SizeProgram.place(x=183,y=-1)
        self.MinProgram = Label(self.HeadProgram, bg="#143cd2", fg="white", text="__", relief="groove", width=3, height=1, font=("Lucida","6"))
        self.MinProgram.place(x=162,y=-1)
        self.LeftProgram = Label(self.windowCustomizer, bg="#143cd2", relief="groove", width=1, height=5)
        self.LeftProgram.place(x=20,y=138)
        self.RightProgram = Label(self.windowCustomizer, bg="#143cd2", relief="groove", width=1, height=5)
        self.RightProgram.place(x=256,y=138)
        self.BodyProgram = Frame(self.windowCustomizer, bg=self.ColorFond, width=243, height=70)
        self.BodyProgram.place(x=22,y=138)
        self.ButtonCtrl1 = Label(self.BodyProgram, bg=self.ColorButtons,text="▲", relief="raised", padx=12, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl1.place(x=0, y=0)
        self.ButtonCtrl2 = Label(self.BodyProgram, bg=self.ColorButtons,text="██", relief="raised", padx=10, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl2.place(x=40, y=0)
        self.ButtonCtrl3 = Label(self.BodyProgram, bg=self.ColorButtons,text="►", relief="raised", padx=12, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl3.place(x=81, y=0)
        self.ButtonCtrl4 = Label(self.BodyProgram, bg=self.ColorButtons,text="▌▐", relief="raised", padx=10, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl4.place(x=121, y=0)
        self.ButtonCtrl5 = Label(self.BodyProgram, bg=self.ColorButtons,text="▐◄", relief="raised", padx=9, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl5.place(x=162, y=0)
        self.ButtonCtrl6 = Label(self.BodyProgram, bg=self.ColorButtons,text="►▌", relief="raised", padx=9, height=3, font="{MS Sans Serif} 4")
        self.ButtonCtrl6.place(x=204, y=0)
        self.ButtonColorGray.bind("<Enter>", self.ChangeColorToGray)
        self.ButtonColorDawn.bind("<Enter>", self.ChangeColorToDawn)
        self.ButtonColorForest.bind("<Enter>", self.ChangeColorToForest)
        self.ButtonColorGold.bind("<Enter>", self.ChangeColorToGold)
        self.ButtonColorWater.bind("<Enter>", self.ChangeColorToWater)
        for mybutton in (self.ButtonColorGray, self.ButtonColorDawn, self.ButtonColorForest, self.ButtonColorGold, self.ButtonColorWater):
            mybutton.bind("<Leave>", self.ChangeColorToNormaly)

    def ChangeColorTo(self, ColorButton, ColorFond):
        for mybutton in (self.ButtonCtrl1, self.ButtonCtrl2, self.ButtonCtrl3,self.ButtonCtrl4, self.ButtonCtrl5, self.ButtonCtrl6):
            mybutton["bg"] = ColorButton
        self.BodyProgram["bg"] = ColorFond
    def ChangeColorToGray(self, *e):
        self.ChangeColorTo("gray40", "gray25")
    def ChangeColorToDawn(self, *e):
        self.ChangeColorTo("OrangeRed","DarkOrange2")
    def ChangeColorToForest(self, *e):
        self.ChangeColorTo("SpringGreen","SeaGreen")
    def ChangeColorToGold(self, *e):
        self.ChangeColorTo("gold","gold3")
    def ChangeColorToWater(self, *e):
        self.ChangeColorTo("DeepSkyBlue","#144682")
    def ChangeColorToNormaly(self, *e):
        self.ChangeColorTo(Machine.ButtonOpen["bg"],Machine.Fond["bg"])

    def ExitCustom(self,*e):
        Machine.CustomOpenON()

    def SaveCustom(self,color):
        Machine.ColorActualy = color
    def ChangeColor(self,Color):
        ActualColor = ColectionColors(Color)
        ColorFond = ActualColor["Fond"]
        ColorBands = ActualColor["ColorBands"]
        ColorMarkButtons = ActualColor["MarkButtons"]
        ColorButtons = ActualColor["ColorButtons"]
        ColorTextLbFrame = ActualColor["ColorTextLbFrame"]
        ActiveColorButton = ActualColor["ActiveColorButton"]
        LetterVariable = ActualColor["LetterVar"]
        ResutlInfo = ActualColor["ResultInfo"]
        FondListTracks = ActualColor["FondListTracks"]
        highlightBGListTracks = ActualColor["HightLightBGListTracks"]
        FGListTrackas = ActualColor["FGListTrackas"]
        SelectFGListOFTracks = ActualColor["SelectFgListTracks"]
        ColorRepeat = ActualColor["repeatTrack"]
        #asign:
        Machine.Fond["bg"] = ColorFond
        Machine.MarkButtons["bg"] = ColorMarkButtons
        for i in (Machine.Band1,Machine.Band2,Machine.Band3,Machine.Band4,Machine.Band5,Machine.Band6,Machine.Band7): i["bg"] = ColorBands
        for i in (Machine.ButtonOpen,Machine.ButtonStop,Machine.ButtonPlay,Machine.ButtonPause,Machine.ButtonUpTrack,Machine.ButtonDownTrack,Machine.ButtonAbout):
            i["bg"] = ColorButtons; i["activebackground"] = ActiveColorButton
        for i in (Machine.TitlePosition,Machine.TitleVolume,Machine.TitleTone,Machine.TitleReproductions,Machine.TitleInfoTrack,Machine.TitleOptionals):
            i["bg"] = ColorFond; i["fg"] = ColorTextLbFrame
        for i in (Machine.PositionTrack,Machine.VolumeTrack,Machine.ToneTrack):
            i["bg"] = ColorFond; i["highlightbackground"] = ColorFond; i["fg"] = LetterVariable; i["activebackground"] = "black"
        Machine.ListReproductions["bg"] = FondListTracks
        Machine.ListReproductions["highlightbackground"] = highlightBGListTracks
        Machine.ListReproductions["fg"] = FGListTrackas
        Machine.ListReproductions["selectforeground"] = SelectFGListOFTracks
        Machine.CheckButtonRepeat["bg"] = ColorFond
        Machine.CheckButtonRepeat["fg"] = ColorRepeat
        Machine.CheckButtonRepeat["activebackground"] = ColorFond
        Machine.ButtonCustomm["bg"] = ColorButtons; Machine.ButtonCustomm["activebackground"] = ActiveColorButton
        for i in (Machine.LabelQuantityList,Machine.LabelLenghtTrack,Machine.LabelSizeTrack): i["bg"] = ColorFond; i["fg"] = ResutlInfo
        self.SaveCustom(Color)
        self.ChangeColorTo(ColorButtons, ColorFond)
       
    def ChangeColorCallGray(self):
        self.ChangeColor("Gray")
    def ChangeColorCallDawn(self):
        self.ChangeColor("Dawn")
    def ChangeColorCallForest(self):
        self.ChangeColor("Forest")
    def ChangeColorCallGold(self):
        self.ChangeColor("Gold")
    def ChanngeColorCallWater(self):
        self.ChangeColor("Water")


class Body(ConfigColors):
    def __init__(self):
        self.window = Tk()
        self.window.minsize(355,500)
        self.window.title("PowerM")
        self.window.resizable(False,False)
        icon = "icon.ico" if SystemOperating()=="Windows" else "icon.png"
        try:
            self.window.iconbitmap(icon)
            Error_Icon = False
        except:
            Error_Icon = True
        # Load configurations:
        LoadConfig = cPickle.load(file("Save.PowerM","r"))
        ConfigNames = LoadConfig[0]
        ConfigRoutes = LoadConfig[1]
        Actualy = LoadConfig[2]
        ConfigRepeat = LoadConfig[3]
        ConfigVol = LoadConfig[4]
        ConfigTone = LoadConfig[5]
        self.ColorActualy = LoadConfig[6] # end of load
        # aparience:
        ActualColor = ColectionColors(self.ColorActualy)
        ColorFond = ActualColor["Fond"]
        ColorBands = ActualColor["ColorBands"]
        ColorMarkButtons = ActualColor["MarkButtons"]
        ColorButtons = ActualColor["ColorButtons"]
        ColorTextLbFrame = ActualColor["ColorTextLbFrame"]
        ActiveColorButton = ActualColor["ActiveColorButton"]
        LetterVariable = ActualColor["LetterVar"]
        ResutlInfo = ActualColor["ResultInfo"]
        FondListTracks = ActualColor["FondListTracks"]
        highlightBGListTracks = ActualColor["HightLightBGListTracks"]
        FGListTrackas = ActualColor["FGListTrackas"]
        SelectFGListOFTracks = ActualColor["SelectFgListTracks"]
        ColorRepeat = ActualColor["repeatTrack"]
        self.Fond = Frame(self.window,bg=ColorFond,width=355,height=440)
        self.Fond.place(x=0,y=60)
        self.MarkButtons = Frame(self.window,width=355,bg=ColorMarkButtons,height=66)
        self.MarkButtons.place(x=0,y=0)
        self.Band1 = Frame(self.window,width=355,bg=ColorBands,height=5)
        self.Band1.place(x=0,y=66)
        self.Band2 = Frame(self.window,width=355,bg=ColorBands,height=5)
        self.Band2.place(x=0,y=150)
        self.Band3 = Frame(self.window,width=355,bg=ColorBands,height=5)
        self.Band3.place(x=0,y=335)
        self.Band4 = Frame(self.window,width=355,bg=ColorBands,height=5)
        self.Band4.place(x=0,y=435)
        self.Band5 = Frame(self.window,width=5,bg=ColorBands,height=430)
        self.Band5.place(x=0,y=71)
        self.Band6 = Frame(self.window,width=5,bg=ColorBands,height=430)
        self.Band6.place(x=350,y=71)
        self.Band7 = Frame(self.window,width=355,bg=ColorBands,height=5)
        self.Band7.place(x=0,y=495)
        # Botones:
        self.ButtonOpen = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="▲",overrelief="groove",font="Lucida 30",command=self.OpenFiles)
        self.ButtonOpen.place(x=0,y=0, height=62, width=54)
        self.ButtonStop = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="██",overrelief="groove",font="Lucida 15",command=self.StopMP3)
        self.ButtonStop.place(x=55,y=0, height=62, width=59)
        self.ButtonPlay = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="►",overrelief="groove",font="Lucida 30",command=self.PlayMP3)
        self.ButtonPlay.place(x=115,y=0, height=62, width=54)
        self.ButtonPause = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="▌▐",overrelief="groove",font="Lucida 15",command=self.PauseMP3)
        self.ButtonPause.place(x=170,y=0, height=62, width=59)
        self.ButtonUpTrack = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="▐◄",overrelief="groove",font="Lucida 15",command=self.ChangeTrackUp)
        self.ButtonUpTrack.place(x=230,y=0, height=62, width=62)
        self.ButtonDownTrack = Button(self.window,activebackground=ActiveColorButton,bg=ColorButtons,text="►▌",overrelief="groove",font="Lucida 15",command=self.ChangeTrackDown)
        self.ButtonDownTrack.place(x=293, y=0, height=62, width=62)
        # Etiquetas:
        self.TitlePosition = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="Position",width=175,height=68)
        self.TitlePosition.place(x=11,y=71)
        self.TitleVolume = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="Volume",width=75,height=68)
        self.TitleVolume.place(x=190,y=71)
        self.TitleTone = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="Tone",width=75,height=68)
        self.TitleTone.place(x=270,y=71)
        self.TitleReproductions = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="List of Tracks",width=334,height=170)
        self.TitleReproductions.place(x=11,y=155)
        self.TitleInfoTrack = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="Info of Tracks",width=334,height=83)
        self.TitleInfoTrack.place(x=11,y=340)
        self.TitleOptionals = LabelFrame(self.window,fg=ColorTextLbFrame,bg=ColorFond,text="Optionals",width=334,height=50)
        self.TitleOptionals.place(x=11,y=440)
        # Scalas:
        self.PositionTrack = Scale(self.window,highlightbackground=ColorFond,bg=ColorFond,cursor="sb_h_double_arrow",fg=LetterVariable,orient="horizontal",activebackground="black",sliderrelief="groove",sliderlength=14,troughcolor="gray70",borderwidth=5,command=self.CtrlPosition)
        self.PositionTrack.place(x=13,y=85,height=52,width=170)
        self.VolumeTrack = Scale(self.window,highlightbackground=ColorFond,bg=ColorFond,cursor="sb_h_double_arrow",fg=LetterVariable,orient="horizontal",activebackground="black",sliderrelief="groove",sliderlength=14,troughcolor="gray70",borderwidth=5,command=self.CtrlVolume)
        self.VolumeTrack.place(x=193,y=85,height=52,width=70)
        self.VolumeTrack.set(ConfigVol)
        self.ToneTrack = Scale(self.window,highlightbackground=ColorFond,bg=ColorFond,cursor="sb_h_double_arrow",fg=LetterVariable,orient="horizontal",activebackground="black",sliderrelief="groove",sliderlength=14,troughcolor="gray70",borderwidth=5,command=self.CtrlTone)
        self.ToneTrack.place(x=273,y=85,height=52,width=70)
        self.ToneTrack.set(ConfigTone)
        # List of Reproduction:
        self.ListReproductions = Listbox(self.window,fg=FGListTrackas,selectborderwidth=1,relief="groove",selectforeground=SelectFGListOFTracks,highlightbackground=highlightBGListTracks,bg=FondListTracks,height=9,width=50)
        self.ListReproductions.place(x=19,y=170)
        self.Listscroll = Scrollbar(self.window,command=self.ListReproductions.yview)
        self.Listscroll.place(x=322,y=171,height=148)
        self.ListReproductions.configure(yscrollcommand=self.Listscroll.set)
        # System Track
        self.opener = audiere.open_device()
        self.Routes = []
        self.Track = None
        self.SelectActual = 0
        self.window.bind("<KeyPress-Return>",self.RenameSound)
        self.window.bind("<KeyPress-Delete>",self.RemoveOneTrack)
        self.ListReproductions.bind("<Double-Button-1>",self.RenameSound)
        # Label info:
        self.LabelQuantityList = Label(self.window,text="Quantity in list:",fg=ResutlInfo,bg=ColorFond)
        self.LabelQuantityList.place(x=20,y=360)
        self.LabelLenghtTrack = Label(self.window,text="Lenght of track:",fg=ResutlInfo,bg=ColorFond)
        self.LabelLenghtTrack.place(x=20,y=380)
        self.LabelSizeTrack = Label(self.window,text="Size of track in MB:",fg=ResutlInfo,bg=ColorFond)
        self.LabelSizeTrack.place(x=20,y=400)
        # Options buttons:
        self.AboutONOFF = False
        self.ButtonAbout = Button(self.window,bg=ColorButtons,activebackground=ActiveColorButton,text="About",width=7,height=1,command=self.ABOUT)
        self.ButtonAbout.place(x=35,y=460)
        self.ButtonCustomm = Button(self.window,bg=ColorButtons,activebackground=ActiveColorButton,text="Custom",width=7,height=1,command=self.CustomOpen)
        self.ButtonCustomm.place(x=95,y=460)
        self.CheckButtonRepeat = Checkbutton(self.window,activebackground=ColorFond,activeforeground="red",selectcolor="black",text="Repeat track",fg=ColorRepeat,bg=ColorFond,command=self.ActiveOnOffRepeat)
        self.CheckButtonRepeat.place(x=250,y=460)
        self.BoolCheck = True
        # Load state:
        if ConfigNames:
            for i in ConfigNames:
                self.ListReproductions.insert(self.ListReproductions.size(),i)
            self.Routes = ConfigRoutes
            self.SelectActual = Actualy
        self.BoolCheck = ConfigRepeat
        self.CheckButtonRepeat.select() if self.BoolCheck else self.CheckButtonRepeat.deselect()
        #end Load State
        self.ActualizationWindow()
        self.intVol = int(self.VolumeTrack.get())
        self.intTone = int(self.ToneTrack.get())
        self.CustomOpenONOFF = False
        self.BandaTitle = ""
        self.Seleccion = ""
        self.slectAfter = 0
        self.slectEnd = 25
        self.MovePosition()
        self.MoveAutomaticOnOff = True
        self.MoveTitle()
        self.window.bind("<q>", self.OpenFiles)
        self.window.bind("<w>", self.StopMP3)
        self.window.bind("<e>", self.PlayMP3)
        self.window.bind("<r>", self.PauseMP3)
        self.window.bind("<t>", self.ChangeTrackUp)
        self.window.bind("<y>", self.ChangeTrackDown)
        self.window.bind("<Up>", self.VolumeUp)
        self.window.bind("<Down>", self.VolumeDown)
        self.window.bind("<Left>", self.PositionLeft)
        self.window.bind("<Right>", self.PositionRight)
        self.window.bind("<s>", self.InvokeButtonRepeatOnOff)
        if Error_Icon:
            if not exists(icon):
                MSG_Error_Icon = "Not name "+icon+" in directory"
            else:
                MSG_Error_Icon = icon+" corrupt, icon not found"
            def ShowErrorView():
                showwarning("PowerM-Warning!", MSG_Error_Icon)
            self.window.after(1000, ShowErrorView)

    def MovePosition(self):
        if self.Track:
            self.MoveAutomaticOnOff = False
            self.PositionTrack.set(self.Track.position * 10 / 100)
        self.window.after(ms=1000, func=self.MovePosition)
        def ON():
            self.MoveAutomaticOnOff = True
        self.window.after(ms=100, func=ON)
       

    def MoveTitle(self):
        if self.ListReproductions.size():
            if len(self.BandaTitle) > 25:
                self.Seleccion = self.BandaTitle[self.slectAfter:self.slectEnd]
                self.slectAfter += 1
                self.slectEnd += 1
                self.window.title("PowerM :: ("+self.Seleccion+"...)")
                if self.slectEnd > len(self.BandaTitle):
                    self.Seleccion = ""
                    self.slectAfter = 0
                    self.slectEnd = 25
            else:
                if self.BandaTitle:
                    self.window.title("PowerM :: ("+self.BandaTitle+")")
        else:
            self.window.title("PowerM")
        if not self.BandaTitle: self.window.title("PowerM")
        self.window.after(ms=500, func=self.MoveTitle)
       
    def CheckRepeat(self):
        if self.Track:
            self.Track.repeating = True if self.BoolCheck else False
       
    def ActiveOnOffRepeat(self):
        self.BoolCheck = True if not self.BoolCheck else False
        self.CheckRepeat()
    def InvokeButtonRepeatOnOff(self, *e):
        self.CheckButtonRepeat.invoke()

    def ActualizationWindow(self):
        if self.Track:
            length = str(self.Track.length * 10 / 100)
            size = str(float(getsize(self.Routes[self.SelectActual]) / 1024.0 / 1024.0)).split(".")
            MBS = size[0]+"."+size[1][0]
        else:
            length = "None"
            MBS = "None"
        self.LabelQuantityList["text"] = "Quantity in list: "+str(self.ListReproductions.size())
        self.LabelLenghtTrack["text"] = "Lenght of track: "+length
        self.LabelSizeTrack["text"] = "Size of track in MB: "+ MBS
        self.CtrlPosition("activate")
   
    def OpenFiles(self, *e):
        RouteMP3 = tkFileDialog.askopenfilenames(filetypes = (("Songs", ("*.Ogg","*.mp3","*.wav","*.flac","*.aiff","*.mod","*.S3M","*.XM","*.IT")),))
        if RouteMP3:
            self.window.title("PowerM: Loading...")
            for MP3 in RouteMP3:
                File = splitext(MP3.split("/")[-1])[0]
                if not MP3.upper() in [cap.upper() for cap in self.Routes]:
                    self.Routes.append(MP3)
                    self.ListReproductions.insert(self.ListReproductions.size(),File)
            self.window.title("PowerM")
            self.ActualizationWindow()

    def PlayMP3(self, *e):
        if self.Track:
            if self.Track.playing:
                self.Track.reset()
            else:
                self.Track.play()
                self.ActualizationWindow()
            self.CtrlPosition("activate")
            self.CtrlVolume()
            self.CtrlTone()
            self.CheckRepeat()
        else:
            if self.ListReproductions.size():
                if self.SelectActual > 0:
                    self.SelectActual +=1
                    self.ChangeTrackUp()
                elif self.SelectActual == 0:
                    self.SelectActual -= 1
                    self.ChangeTrackDown()

    def StopMP3(self, *e):
        if self.Track:
            self.Track.stop()

    def PauseMP3(self, *e):
        if self.Track:
            if self.Track.playing:
                self.Track.pause()
            else:
                self.PlayMP3()

    def ChangeTrackUp(self, *e):
        end = self.ListReproductions.size()
        if end:
            if self.SelectActual > 0:
                self.StopMP3()
                self.ListReproductions.selection_clear(0,end)
                self.ListReproductions.select_set(self.SelectActual-1)
                self.RenameSound()
                self.PlayMP3()

    def ChangeTrackDown(self, *e):
        end = self.ListReproductions.size()
        if end:
            if self.SelectActual < end-1:
                self.StopMP3()
                self.ListReproductions.selection_clear(0,end)
                self.ListReproductions.select_set(self.SelectActual+1)
                self.RenameSound()
                self.PlayMP3()

    def CtrlVolume(self,E=None):
        self.VolumeTrack["state"] = "normal" if self.Track else "disable"
        if self.Track:
            vol = int(self.VolumeTrack.get())
            self.Track.volume = vol / 100.0
            self.intVol = vol
    def VolumeUp(self, *e):
        self.VolumeTrack.set(int(self.VolumeTrack.get())+1)
    def VolumeDown(self, *e):
        self.VolumeTrack.set(int(self.VolumeTrack.get())-1)

    def CtrlTone(self,E=None):
        self.ToneTrack["state"] = "normal" if self.Track else "disable"
        if self.Track:
            tone = int(self.ToneTrack.get())
            self.Track.pitchshift = tone / 100.0
            self.intTone = tone

    def CtrlPosition(self,E=None):
        self.PositionTrack["state"] = "normal" if self.Track else "disable"
        if self.Track and E != "activate":
            self.PositionTrack["to"] = self.Track.length * 10 / 100
            self.PositionTrack["resolution"] = (self.Track.length * 10 / 100) / 100
            if self.MoveAutomaticOnOff:
                self.Track.position = int(self.PositionTrack.get()) * 100 / 10
    def PositionLeft(self, *e):
        if self.Track:
            self.PositionTrack.set( int(self.PositionTrack.get()) - (self.Track.length * 10 / 100) / 100 )
    def PositionRight(self, *e):
        if self.Track:
            self.PositionTrack.set( int(self.PositionTrack.get()) + (self.Track.length * 10 / 100) / 100 )

    def RenameSound(self,play=True):
        end = self.ListReproductions.size()
        if end:
            selected = int(self.ListReproductions.curselection()[0])
            self.SelectActual = selected
            File = self.Routes[selected]
            self.BandaTitle = self.ListReproductions.get(0,"end")[self.SelectActual]
            try:
                self.Track = self.opener.open_file(File,1)
                if play:
                    self.PlayMP3()
            except:
                File_fail = File.split("/")[-1]
                text = "Not possible open files nick with accent/s or other error ocurred\nplease play other music\nNot open "+File_fail
                showwarning("Error in PowerM",text)
            self.ActualizationWindow()
            self.window.mainloop()

    def RemoveOneTrack(self,*e):
        if self.ListReproductions.size():
            if self.ListReproductions.curselection():
                selected = self.Routes[int(self.ListReproductions.curselection()[0])]
                self.ListReproductions.delete(int(self.ListReproductions.curselection()[0]))
                self.Routes.remove(selected)
                if self.SelectActual > 0: self.SelectActual -= 1
                if not self.ListReproductions.size():
                    self.Track = None
                self.ActualizationWindow()
                   
    def AboutOn(self,*e):
        self.AboutONOFF = False
    def ABOUT(self):
        if not self.AboutONOFF:
            textHelp = """

Use Keys:

    Q : Open files.
    W : Stop track.
    E : Play track.
    R : Pause track.
    T : change track up.
    Y : change track down.
    UP : Volume level up.
    DOWN : Volume level down.
    LEFT : Position track left.
    RIGHT : Position track left.
    S : Button repeat track.
    ENTER : Play select track in list.
    SUPR : Remove select track in list.

Author: Leonardo A. Reichert as Sokoleonardo

¡Tanks all users!
"""
            self.AboutONOFF = True
            windowhelp = Tk()
            windowhelp.geometry("300x290+300+300")
            windowhelp.title("Help in PowerM")
            windowhelp.resizable(False,False)
            try:
                icon = "icon.ico" if SystemOperating()=="Windows" else "icon.png"
                windowhelp.iconbitmap(icon)
            except: pass
            Frame(windowhelp, width=300, height=290, bg=self.Fond["bg"]).pack()
            Label(windowhelp, text=textHelp, bg=self.Fond["bg"]).place(x=30,y=0)
            windowhelp.bind("<Destroy>",self.AboutOn)

           
    def CustomOpenON(self):
        self.CustomOpenONOFF = False
    def CustomOpen(self):
        if not self.CustomOpenONOFF:
            self.CustomOpenONOFF = True
            ConfigColors()

    def SaveAndExit(self):
        if self.Routes:
            if not exists("Save.PowerM"): #debe existir
                FILE = open("Save.PowerM","w")
                cPickle.dump([None,None,0,True,40,100,"Gray"],FILE)
                FILE.close()
               
            ListNames = []
            ListRoutes = []
            for i in self.Routes:
                ListRoutes.append(i)
                ListNames.append(splitext(i.split("/")[-1])[0])
           
            FILE = open("Save.PowerM","w")
            cPickle.dump([ListNames,ListRoutes,self.SelectActual,self.BoolCheck,self.intVol,self.intTone,self.ColorActualy],FILE)
            FILE.close()
            exit()

Machine = Body()
Machine.window.mainloop()

Machine.SaveAndExit()


Última edición por Sokoleonardo el Jue Ene 05, 2012 7:01 am, editado 6 veces
Sokoleonardo
Sokoleonardo
Moderador de Seccion
Moderador de Seccion

Mensajes : 52
Nivel : 138
Reputación : 4
Fecha de inscripción : 04/08/2011
Vive en Vive en : Argentina

Volver arriba Ir abajo

[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo Empty Re: [Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

Mensaje por d(>_<)b Lun Nov 21, 2011 5:19 pm

Hey muy bueno Solo le hace falta una interfas grafica mejorada y estaria genial
Muy bueno Very Happy
d(>_<)b
d(>_<)b
01000011 01101111 01100100 01100101 01110010
01000011 01101111 01100100 01100101 01110010

Mensajes : 315
Nivel : 539
Reputación : 17
Fecha de inscripción : 27/01/2011
Vive en Vive en : mexico df

https://elite.foroactivo.mx

Volver arriba Ir abajo

[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo Empty Re: [Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

Mensaje por Sokoleonardo Lun Nov 21, 2011 9:19 pm

Na, la interfaz grafica esta perfecta, ademas podes cambiarle de color al programa si deseas hacerlo porque tiene opciones:
Con el boton "custom" accedes a un pequeño panel con 4 botones de colores los cuales dicen: Gray, Dawn, Gray, Forest...
Ademas este programa guarda los cambios echos en el programa:
MusicaActual, ColorActual, Musica/sEnLista, ValoresDeEscalas: Volumen y Tono.

No he visto programas muy bien echo en Python y creo que esto realmente es algo admirable.
Casi nadie usa la interfaz grafica, siempre tienen la tipica "consola negra" para el manejo de cierto codigo.
La consola negra es igual que la CMD de windows.

Saludos!
Sokoleonardo
Sokoleonardo
Moderador de Seccion
Moderador de Seccion

Mensajes : 52
Nivel : 138
Reputación : 4
Fecha de inscripción : 04/08/2011
Vive en Vive en : Argentina

Volver arriba Ir abajo

[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo Empty Re: [Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

Mensaje por d(>_<)b Jue Nov 24, 2011 1:23 am

si pues en eso tienes razon pero yo se que se podria mejorar un poco el diseño no crees?
d(>_<)b
d(>_<)b
01000011 01101111 01100100 01100101 01110010
01000011 01101111 01100100 01100101 01110010

Mensajes : 315
Nivel : 539
Reputación : 17
Fecha de inscripción : 27/01/2011
Vive en Vive en : mexico df

https://elite.foroactivo.mx

Volver arriba Ir abajo

[Tk] PowerM (Reproduce mucha musica) By Sokoleonardo Empty Re: [Tk] PowerM (Reproduce mucha musica) By Sokoleonardo

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.