如何将用户在tk.Entry对象中输入的元素附加到列表中?

2024-05-03 06:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python和Tkinter构建一个非常简单的程序,允许用户通过键盘输入人名,然后命令一个按钮从列表中随机选择一个人,并将其显示在tk.Label对象中

我的问题是,一旦运行root.mainloop(),我就可以向列表中添加名称,但列表不会用新名称更新

这是Tkinter初始化的主代码

import tkinter as tk
from tkinter import filedialog, Text
import random

root = tk.Tk()
root.title('Millor persona del moment')
root.geometry("500x200")
root.configure(bg='black')

peopleList = []

tk.Label(root, text="Insertar participante: ",fg="#ff007f", bg='black').grid(row=0)
e1 = tk.Entry(root)
e1.grid(row=0, column=1)
addButton = tk.Button(root, text='Añadir', padx=10, pady=5, fg="#ff007f", bg='black', command=addPerson)
addButton.grid(row=0, column=2)

while peopleList:
    turnButton = tk.Button(root, text='Saca Tema', padx=10, pady=5, fg="#ff007f", bg='black', command=wordTurn(peopleList))
    turnButton.grid(row=1, column=0)

nom = tk.StringVar()
nom.set('Comencem')

personSpeaking = tk.Label(root, textvariable=nom,fg="#ff007f", bg='black')
personSpeaking.grid(row=1, column=1)


root.mainloop()

这些是我使用的函数

def addPerson():
    peopleList.append(e1.get())
    e1.delete(0,'end')
    
def wordTurn(peopleList):
    person = random.choice(peopleList)
    peopleList.remove(person)        
    nom.set(person)