【问题标题】:tkinter and pygame problems with entrytkinter 和 pygame 的入口问题
【发布时间】:2018-06-09 14:23:59
【问题描述】:

可以这么说,我想制作一个“音乐中心”,在那里我可以将所有音乐放在一个地方,我只需输入歌曲名称然后按播放即可。我几乎已经实现了,但是我在 tkinter 中的输入出现错误。这是我的代码:

from tkinter import *
import time
import pygame
import tkinter

root = Tk()
f1 = tkinter.Frame(root, height=100, width=100)
f1.pack()
root.title("Test")

e = Entry(f1)
e.pack()
e.focus_set()

s = e.get()

def song():
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load(s+".mp3")
    pygame.mixer.music.play()
def pause():
    pygame.mixer.music.pause()
def resume():
    pygame.mixer.music.unpause()



b = Button(f1, text="Play Song", command=song)
b.pack(fill=tkinter.BOTH, expand=1)

b2 = Button(f1, text="Pause", command=pause)
b2.pack()

b3 = Button(f1, text="Resume", command=resume)
b3.pack()

root.mainloop()

我收到错误“pygame.error:无法打开'.mp3'”,这一定意味着来自条目的输入没有通过。感谢所有帮助!

【问题讨论】:

  • s = e.get() 将条目当前值分配给s。最初什么都不是。

标签: python python-3.x tkinter pygame tk


【解决方案1】:

我想出了一个解决办法。我没有将 e.get() 设为变量,而是将其放入 pygame 语句中。

pygame.mixer.music.load(s+".mp3")

改为

pygame.mixer.music.load((e.get())+".mp3")

它可以工作

【讨论】:

  • 这是解决方案,因为它使song 方法在被调用时获取条目值,因此当按下按钮时。而不是获取条目的初始值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 2019-09-09
  • 2023-02-20
  • 2014-06-12
相关资源
最近更新 更多