2026. június 15., hétfő

Grafikus felülettel (GUI) MP3-lejátszót készítettem Python nyelven (Szoftverfejlesztő)


Az alábbiakban egy egyszerű és látványos, grafikus felülettel (GUI) rendelkező MP3-lejátszó programot készíthetünk el Python segítségével. A zenelejátszáshoz a pygame modult, a grafikus felülethez pedig a beépített tkinter könyvtárat használtam.
------------
import os
import tkinter as tk
from tkinter import filedialog, messagebox
from pygame import mixer

class ZeneLejatszo:
    def __init__(self, root):
        self.root = root
        self.root.title("Python MP3 Lejátszó")
        self.root.geometry("400x400")
        self.root.configure(bg="#2c3e50")

        # Pygame mixer inicializálása
        mixer.init()

        # Változók
        self.aktualis_zene = ""
        self.szuneteltetve = False

        # Felhasználói felület létrehozása
        self.letrehozo_gui()

    def letrehozo_gui(self):
        # Címke
        self.cim_label = tk.Label(self.root, text="Nincs kiválasztva zene", bg="#2c3e50", fg="#ecf0f1", font=("Arial", 12))
        self.cim_label.pack(pady=30)

        # Gombok kerete
        gomb_keret = tk.Frame(self.root, bg="#2c3e50")
        gomb_keret.pack(pady=10)

        # Gombok
        self.megnyitas_btn = tk.Button(gomb_keret, text="Megnyitás", width=7, command=self.zene_betoltes)
        self.megnyitas_btn.grid(row=0, column=0, padx=5, pady=5)

        self.lejatszas_btn = tk.Button(gomb_keret, text="Lejátszás", width=7, command=self.zene_lejatszas)
        self.lejatszas_btn.grid(row=0, column=1, padx=5, pady=5)

        self.szunet_btn = tk.Button(gomb_keret, text="Szünet", width=7, command=self.zene_szunet)
        self.szunet_btn.grid(row=0, column=2, padx=5, pady=5)

        self.leallitas_btn = tk.Button(gomb_keret, text="Leállítás", width=7, command=self.zene_leallitas)
        self.leallitas_btn.grid(row=0, column=3, padx=5, pady=5)

    def zene_betoltes(self):
        fajl = filedialog.askopenfilename(initialdir="/", title="Válassz egy MP3 fájlt", filetypes=(("MP3 Files", "*.mp3"), ("All Files", "*.*")))
        if fajl:
            self.aktualis_zene = fajl
            fajl_nev = os.path.basename(self.aktualis_zene)
            self.cim_label.config(text=f"Kiválasztva: {fajl_nev}")

    def zene_lejatszas(self):
        if self.aktualis_zene:
            try:
                mixer.music.load(self.aktualis_zene)
                mixer.music.play()
                self.cim_label.config(text=f"Most szól: {os.path.basename(self.aktualis_zene)}")
                self.szuneteltetve = False
            except Exception as e:
                messagebox.showerror("Hiba", "Nem sikerült lejátszani a zenét.")
        else:
            messagebox.showwarning("Figyelmeztetés", "Kérlek, először válassz ki egy zenét!")

    def zene_szunet(self):
        if self.aktualis_zene:
            if not self.szuneteltetve:
                mixer.music.pause()
                self.szuneteltetve = True
                self.szunet_btn.config(text="Folytatás")
            else:
                mixer.music.unpause()
                self.szuneteltetve = False
                self.szunet_btn.config(text="Szünet")

    def zene_leallitas(self):
        if self.aktualis_zene:
            mixer.music.stop()
            self.cim_label.config(text="Zene leállítva")
            self.szunet_btn.config(text="Szünet")

# Futtatás
if __name__ == "__main__":
    ablak = tk.Tk()
    app = ZeneLejatszo(ablak)
    ablak.mainloop()
--------------



Nincsenek megjegyzések:

Megjegyzés küldése