还是无法更新且窗口不显示单词
时间: 2023-08-26 12:04:05 浏览: 123
C#写的数据库背单词程序(源码)
5星 · 资源好评率100%
抱歉,我之前的回答有误。问题出在在标签中使用了字符串变量`english`,但是这个变量没有被正确地绑定。
下面是修正后的代码:
```pythonimport os
import random
import time
from fnmatch import fn
import pygame
import tkinter as tk
root = tk.Tk()
root.geometry("450x200+374+182")
root.title("英语单词")
english1 = tk.StringVar() # 创建一个StringVar变量
def update_label():
w.config(text=english1.get()) # 通过get()方法获取变量的值
root.after(1000, update_label)
def word():
while True:
path = "D:\MY python\English"
lists = os.listdir(path)
english = (random.choice(lists))
global english1
english1.set(english.strip(".mp3")) # 使用set()方法更新变量的值
print(english1.get())
time.sleep(3)
basedir = r"D:\MY python\English"
for root, dirs, files in os.walk(basedir):
for file in files:
english3 = os.path.join(root, file)
if fnmatch(file, f"{english1.get()}*.mp3"):
pygame.mixer.init()
pygame.mixer.music.load(english3)
pygame.mixer.music.play()
time.sleep(3)
button = tk.Button(root, text="开始", command=word)
button.grid(row=0, column=0)
w = tk.Label(root, textvariable=english1) # 使用textvariable属性绑定StringVar变量
w.grid(row=1, column=0)
update_label() # 启动标签的实时更新
root.mainloop()
```
这样修改后,标签会实时更新,并且窗口会显示随机选择的英语单词。
希望对您有所帮助!如果还有其他问题,请随时提问。
阅读全文