因此,我使用這個程式的目的是將主框架上顯示的內容存盤在下拉串列中,該串列顯示了說唱歌手的名單。因此,我希望它不只是顯示在主框架上,而是隱藏起來,直到藝術家的特定名字(圖片、播放按鈕和停止按鈕屬于誰)在串列中被選中。 請幫助我解決這個問題。謝謝。
這是目前程式的螢屏截圖。 到目前為止,主框架上顯示了4個東西 用tkinter制作的串列、圖片、播放按鈕和停止按鈕。
import pygame
from tkinter import *
from PIL import ImageTk, Image
root = Tk()
root.title("Hip-Hop-Flow")
root.iconbitmap("22.ico")
root.geometry("800x600")
pygame.mixer.init()
class Vini。
def __init__(self):
self.rappers = ["Vinnie Paz"/span>, "Sean Price"/span>, "Big L"/span>, "Canibus"/span>]
self.menu = StringVar()
self.menu.set("List of rappers")
siis_chamoshla = OptionMenu(root, self.menu, *self.rappers)
siis_chamoshla.configure(width=30, bg="white")
siis_chamoshla.pack()
def vinispicture(self)。
self.vinniephoto = ImageTk.PhotoImage(Image.open("vini.gif"/span>)
label = Label(image=self.vinniephoto)
label.pack()
def play_vinnie(self)。
pygame.mixer.music.load("vinnie flow.mp3")
pygame.mixer.music.play(loops=0)
def stop_vinnie(self)。
pygame.mixer.music.stop()
def design(self)。
play_button = Button(root, text="Play", font=("Helvetica", 20)。
command=self.play_vinnie)
play_button.pack(pady=20)
stop_button = Button(root, text="Stop", font=("Helvetica", 20) 。
command=self.stop_vinnie)
stop_button.pack(pady=20)
pazienza = Vini()
pazienza.vinispicture(), pazienza.play_vinnie(), pazienza.stop_vinnie(), pazienza.design()
root.mainloop()
uj5u.com熱心網友回復:
你可以創建一個框架來容納圖片和按鈕,這個框架最初是隱藏的。
然后通過command選項在OptionMenu上關聯一個函式。 該函式將在選項被選中時被執行。 在該函式中,你可以根據所選的藝術家加載相應的圖片和歌曲:
import pygame
import tkinter as tk
from PIL import ImageTk
root = tk.Tk()
root.title("Hip-Hop-Flow")
root.iconbitmap("22.ico")
root.geometry("800x600")
pygame.mixer.init()
class Player。
def __init__(self, master=None):
self.rappers = ["Vinnie Paz"/span>, "Sean Price"/span>, "Big L"/span>, "Canibus"/span>]
self.menu = tk.StringVar(value="List of rappers")
siis_chamoshla = tk.OptionMenu(master, self.menu, *self.rappers, command=self.on_selected)
siis_chamoshla.configure(width=30, bg="white")
siis_chamoshla.pack()
# 播放面板,最初是隱藏的。
self.panel = tk.Frame(master)
self.image_label = tk.Label(self.panel)
self.image_label.pack()
tk.Button(self.panel, text="Play", font="Helvetica 20", command=self.play_song).pack(pady=20)
tk.Button(self.panel, text="Stop", font="Helvetica 20", command=self.stop_song).pack(pady=20)
def on_selected(self, artist) 。
# 假設圖片名稱為<artist_name>.gif。
self.photo = ImageTk.PhotoImage(file=artist " .gif")
self.image_label.configure(image=self.photo)
# 顯示面板。
self.panel.pack()
#假設歌曲名稱為<artist_name>.mp3
pygame.mixer.music.load(artist " . mp3")
def play_song(self)。
pygame.mixer.music.play(loops=0)
def stop_song(self)。
pygame.mixer.music.stop()
pazienza = Player(root)
root.mainloop()
注意,我使用了import tkinter as tk而不是f from tkinter import *,因為不推薦使用通配符匯入。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/319441.html
標籤:
上一篇:Maven過濾--變數的替換

