ARCOON
ARCOON

Reputation: 29

Pygame & Tkinter Musikplayer

Please can you help me I don't know what´s the problem.

This is the Error:

[Running] python -u "c:\Users\Leon\Desktop\Page Guis\Music Player Pro ++\unknown.py"

  File "c:\Users\Leon\Desktop\Page Guis\Music Player Pro ++\unknown.py", line 49
    mixer.music.play()
                     ^
TabError: inconsistent use of tabs and spaces in indentation
[Done] exited with code=1 in 0.651 seconds

My code:

#  -*- coding: utf-8 -*-

from pygame import mixer
import tkinter.filedialog
import sys

try:
    import tkinter as tk
except ImportError:
    import tkinter as tk

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

import unknown_support
mixer.init()

def vp_start_gui():
    '''Starting point when module is the main routine.'''
    global val, w, root
    root = tk.Tk()
    top = Toplevel1 (root)
    unknown_support.init(root, top)
    root.mainloop()

w = None
def create_Toplevel1(rt, *args, **kwargs):
    '''Starting point when module is imported by another module.
    Correct form of call: 'create_Toplevel1(root, *args, **kwargs)' .'''
    global w, w_win, root
    #rt = root
    root = rt
    w = tk.Toplevel (root)
    top = Toplevel1 (w)
    unknown_support.init(w, top, *args, **kwargs)
    return (w, top)

def destroy_Toplevel1():
    global w
    w.destroy()
    w = None

def load_song():
    mixer.music.load(tk.filedialog.askopenfile())
    mixer.music.play()


def pause_song():
    mixer.music.pause()


def resume():
    mixer.music.unpause()


class Toplevel1:
    def __init__(self, top=None):
        '''This class configures and populates the toplevel window.
        top is the toplevel containing window.'''
        _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
        _fgcolor = '#000000'  # X11 color: 'black'
        _compcolor = '#d9d9d9' # X11 color: 'gray85'
        _ana1color = '#d9d9d9' # X11 color: 'gray85'
        _ana2color = '#ececec' # Closest X11 color: 'gray92'

        top.geometry("600x430+314+157")
        top.minsize(120, 1)
        top.maxsize(1370, 729)
        top.resizable(1,  1)
        top.title("Musik Player Pro ++")
        top.configure(relief="groove")
        top.configure(background="#000000")
        top.configure(highlightbackground="#d9d9d9")
        top.configure(highlightcolor="black")

        self.menubar = tk.Menu(top,font="TkMenuFont",bg=_bgcolor,fg=_fgcolor)
        top.configure(menu = self.menubar)

        self.Canvas1 = tk.Canvas(top)
        self.Canvas1.place(relx=0.867, rely=0.116, relheight=0.658
                , relwidth=0.122)
        self.Canvas1.configure(background="#000000")
        self.Canvas1.configure(borderwidth="2")
        self.Canvas1.configure(highlightbackground="#d9d9d9")
        self.Canvas1.configure(highlightcolor="black")
        self.Canvas1.configure(insertbackground="#4fff53")
        self.Canvas1.configure(relief="ridge")
        self.Canvas1.configure(selectbackground="#48ffff")
        self.Canvas1.configure(selectforeground="white")

        self.Label1 = tk.Label(top)
        self.Label1.place(relx=0.667, rely=0.023, height=41, width=194)
        self.Label1.configure(activebackground="#f9f9f9")
        self.Label1.configure(activeforeground="black")
        self.Label1.configure(background="#000000")
        self.Label1.configure(disabledforeground="#a3a3a3")
        self.Label1.configure(font="-family {Tw Cen MT Condensed} -size 14 -weight bold -slant italic -underline 1")
        self.Label1.configure(foreground="#ffffff")
        self.Label1.configure(highlightbackground="#d9d9d9")
        self.Label1.configure(highlightcolor="black")
        self.Label1.configure(text='''Volume''')

        self.Scale1 = tk.Scale(top, from_=0.0, to=100.0)
        self.Scale1.place(relx=0.767, rely=0.116, relwidth=0.0, relheight=0.665
                , width=45, bordermode='ignore')
        self.Scale1.configure(activebackground="#ececec")
        self.Scale1.configure(background="#000000")
        self.Scale1.configure(font="-family {Tw Cen MT Condensed} -size 14 -weight bold -underline 1")
        self.Scale1.configure(foreground="#ffffff")
        self.Scale1.configure(highlightbackground="#d9d9d9")
        self.Scale1.configure(highlightcolor="black")
        self.Scale1.configure(label="Volume")
        self.Scale1.configure(relief="groove")
        self.Scale1.configure(troughcolor="#d9d9d9")
        self.tooltip_font = "TkDefaultFont"
        self.Scale1_tooltip = \
        ToolTip(self.Scale1, self.tooltip_font, '''Volume + / -''')

        self.Label1_2 = tk.Label(top)
        self.Label1_2.place(relx=0.017, rely=0.023, height=41, width=194)
        self.Label1_2.configure(activebackground="#f9f9f9")
        self.Label1_2.configure(activeforeground="black")
        self.Label1_2.configure(anchor='w')
        self.Label1_2.configure(background="#000000")
        self.Label1_2.configure(compound='left')
        self.Label1_2.configure(disabledforeground="#a3a3a3")
        self.Label1_2.configure(font="-family {Tw Cen MT Condensed} -size 14 -weight bold -slant italic -underline 1")
        self.Label1_2.configure(foreground="#ffffff")
        self.Label1_2.configure(highlightbackground="#d9d9d9")
        self.Label1_2.configure(highlightcolor="black")
        self.Label1_2.configure(text='''Now playing:''')

        self.Label2 = tk.Label(top)
        self.Label2.place(relx=0.267, rely=0.279, height=101, width=164)
        self.Label2.configure(activebackground="#f9f9f9")
        self.Label2.configure(activeforeground="black")
        self.Label2.configure(background="#000000")
        self.Label2.configure(disabledforeground="#a3a3a3")
        self.Label2.configure(font="-family {Segoe UI Black} -size 15 -weight bold -slant italic -underline 1")
        self.Label2.configure(foreground="#ffffff")
        self.Label2.configure(highlightbackground="#d9d9d9")
        self.Label2.configure(highlightcolor="black")
        self.Label2.configure(text='''Track Name''')

        self.Button1 = tk.Button(top)
        self.Button1.place(relx=0.017, rely=0.837, height=64, width=187)
        self.Button1.configure(activebackground="#ffffff")
        self.Button1.configure(activeforeground="#000000")
        self.Button1.configure(background="#000000")
        self.Button1.configure(cursor="fleur")
        self.Button1.configure(disabledforeground="#a3a3a3")
        self.Button1.configure(foreground="#ffffff")
        self.Button1.configure(highlightbackground="#d9d9d9")
        self.Button1.configure(highlightcolor="black")
        self.Button1.configure(pady="0")
        self.Button1.configure(relief="groove")
        self.Button1.configure(text='''Resume''')
        self.Button1.configure(command=resume)

        self.Button1_1 = tk.Button(top)
        self.Button1_1.place(relx=0.35, rely=0.837, height=64, width=187)
        self.Button1_1.configure(activebackground="#ffffff")
        self.Button1_1.configure(activeforeground="#000000")
        self.Button1_1.configure(background="#000000")
        self.Button1_1.configure(disabledforeground="#a3a3a3")
        self.Button1_1.configure(foreground="#ffffff")
        self.Button1_1.configure(highlightbackground="#d9d9d9")
        self.Button1_1.configure(highlightcolor="black")
        self.Button1_1.configure(pady="0")
        self.Button1_1.configure(relief="groove")
        self.Button1_1.configure(text='''Pause''')
        self.Button1_1.configure(command=pause_song)

        self.Button1_1_1 = tk.Button(top)
        self.Button1_1_1.place(relx=0.683, rely=0.837, height=64, width=187)
        self.Button1_1_1.configure(activebackground="#ffffff")
        self.Button1_1_1.configure(activeforeground="#000000")
        self.Button1_1_1.configure(background="#000000")
        self.Button1_1_1.configure(disabledforeground="#a3a3a3")
        self.Button1_1_1.configure(foreground="#ffffff")
        self.Button1_1_1.configure(highlightbackground="#d9d9d9")
        self.Button1_1_1.configure(highlightcolor="black")
        self.Button1_1_1.configure(pady="0")
        self.Button1_1_1.configure(relief="groove")
        self.Button1_1_1.configure(text='''Load Song''')
        self.Button1_1_1.configure(command=load_song)

from time import time, localtime, strftime

class ToolTip(tk.Toplevel):
    """
    Provides a ToolTip widget for Tkinter.
    To apply a ToolTip to any Tkinter widget, simply pass the widget to the
    ToolTip constructor
    """
    def __init__(self, wdgt, tooltip_font, msg=None, msgFunc=None,
                delay=0.5, follow=True):
        """
        Initialize the ToolTip

        Arguments:
        wdgt: The widget this ToolTip is assigned to
        tooltip_font: Font to be used
        msg:  A static string message assigned to the ToolTip
        msgFunc: A function that retrieves a string to use as the ToolTip text
        delay:   The delay in seconds before the ToolTip appears(may be float)
        follow:  If True, the ToolTip follows motion, otherwise hides
        """
        self.wdgt = wdgt
        # The parent of the ToolTip is the parent of the ToolTips widget
        self.parent = self.wdgt.master
        # Initalise the Toplevel
        tk.Toplevel.__init__(self, self.parent, bg='black', padx=1, pady=1)
        # Hide initially
        self.withdraw()
        # The ToolTip Toplevel should have no frame or title bar
        self.overrideredirect(True)

        # The msgVar will contain the text displayed by the ToolTip
        self.msgVar = tk.StringVar()
        if msg is None:
            self.msgVar.set('No message provided')
        else:
            self.msgVar.set(msg)
        self.msgFunc = msgFunc
        self.delay = delay
        self.follow = follow
        self.visible = 0
        self.lastMotion = 0
        # The text of the ToolTip is displayed in a Message widget
        tk.Message(self, textvariable=self.msgVar, bg='#FFFFDD',
                font=tooltip_font,
                aspect=1000).grid()

        # Add bindings to the widget.  This will NOT override
        # bindings that the widget already has
        self.wdgt.bind('<Enter>', self.spawn, '+')
        self.wdgt.bind('<Leave>', self.hide, '+')
        self.wdgt.bind('<Motion>', self.move, '+')

    def spawn(self, event=None):
        """
        Spawn the ToolTip.  This simply makes the ToolTip eligible for display.
        Usually this is caused by entering the widget

        Arguments:
        event: The event that called this funciton
        """
        self.visible = 1
        # The after function takes a time argument in milliseconds
        self.after(int(self.delay * 1000), self.show)

    def show(self):
        """
        Displays the ToolTip if the time delay has been long enough
        """
        if self.visible == 1 and time() - self.lastMotion > self.delay:
            self.visible = 2
        if self.visible == 2:
            self.deiconify()

    def move(self, event):
        """
        Processes motion within the widget.
        Arguments:
        event: The event that called this function
        """
        self.lastMotion = time()
        # If the follow flag is not set, motion within the
        # widget will make the ToolTip disappear
        #
        if self.follow is False:
            self.withdraw()
            self.visible = 1

        # Offset the ToolTip 10x10 pixes southwest of the pointer
        self.geometry('+%i+%i' % (event.x_root+20, event.y_root-10))
        try:
            # Try to call the message function.  Will not change
            # the message if the message function is None or
            # the message function fails
            self.msgVar.set(self.msgFunc())
        except:
            pass
        self.after(int(self.delay * 1000), self.show)

    def hide(self, event=None):
        """
        Hides the ToolTip.  Usually this is caused by leaving the widget
        Arguments:
        event: The event that called this function
        """
        self.visible = 0
        self.withdraw()

    def update(self, msg):
        """
        Updates the Tooltip with a new message. Added by Rozen
        """
        self.msgVar.set(msg)

# ===========================================================
#                   End of Class ToolTip
# ===========================================================

if __name__ == '__main__':
    vp_start_gui()

HERE IS THE ERROR PICTURE:

  1. https://i.sstatic.net/eAs6q.png
  2. https://i.sstatic.net/7qwDf.png

Thanks

Upvotes: 0

Views: 122

Answers (1)

CopyrightC
CopyrightC

Reputation: 863

Don't use a mix of tabs and space for indentation, it's not considered a good practice (python specific).

Now to fix it:

  1. Go to terminal and type pip install autopep8
  2. Once it's installed type the following command :
autopep8 -i yourfilename.py

3)You're good to go now!

Upvotes: 1

Related Questions