如何将 Tkinter 中的条目转换为列表以便我可以为我的程序分析它
How to convert entry from Tkinter into a list so that I can analyze it for my program
from tkinter import *
import random
root = Tk()
root.title("Random")
root.geometry("600x400")
root.resizable(False, False)
def open_saw():
saw_wn = Tk()
saw_wn.title("Random App - Spin a Wheel")
saw_wn.geometry("600x400")
saw_wn.resizable(False, False)
saw_wn.mainloop()
def open_coin():
c_wn = Tk()
c_wn.title("Random App - Flip a Coin")
c_wn.geometry("600x400")
c_wn.resizable(False, False)
Label(c_wn, text=" ").grid(row=0, column=0)
Label(c_wn, text="Flip the coin below!").grid(row=0, column=1)
c_wn.mainloop()
def open_average():
avg_wn = Tk()
avg_wn.title("Random App - Flip a Coin")
avg_wn.geometry("600x400")
avg_wn.resizable(False, False)
Label(avg_wn, text=" ").grid(row=0, column=0)
Label(avg_wn, text="Enter your values below to get the averages in mean, median, mode, and range").grid(row=0,
column=1)
entry_avg = Entry(avg_wn).grid(row=1, column=1)
def calculate_mean():
print(entry_avg.get().split(','))
Button(avg_wn, text='test', command=calculate_mean).grid(row=2, column=1)
Label(root, text=" ").grid(row=0, column=0)
title = Label(root, text="Welcome to Random")
title.config(font=("Yu Gothic UI", 24))
title.grid(row=0, column=1)
button1 = Button(root, text=" Spin a wheel ", padx=80, pady=25, command=open_saw)
button1.place(x=2.25, y=100)
button2 = Button(root, text="Calculate mean, mode, median, and range", padx=20, pady=25, command=open_average)
button2.place(x=325, y=100)
button3 = Button(root, text="Flip a Coin", padx=125, pady=25, command=open_coin)
button3.place(x=2.25, y=200)
button4 = Button(root, text="Roll a die", padx=107.5, pady=25)
button4.place(x=325, y=200)
root.mainloop()
我想要的是从条目中获取一个列表,以便我可以计算均值、众数、中位数等,但是当我这样做时,我收到一个错误。错误如下:
line 44, in calculate_mean
print(entry_avg.get().split(','))
AttributeError: 'NoneType' object has no attribute 'get'
请帮忙,因为我是编程的初学者,而且我一直坚持这一点。如果您需要更多信息,请告诉我,我会给您。
似乎 Entry.grid
没有 return 任何东西(即 None
)。尝试将 grid
调用和 Entry
实例化放在 open_average
函数的不同行上:
entry_avg = Entry(avg_wn)
entry_avg.grid(row=1, column=1)
而不是
entry_avg = Entry(avg_wn).grid(row=1, column=1)
from tkinter import *
import random
root = Tk()
root.title("Random")
root.geometry("600x400")
root.resizable(False, False)
def open_saw():
saw_wn = Tk()
saw_wn.title("Random App - Spin a Wheel")
saw_wn.geometry("600x400")
saw_wn.resizable(False, False)
saw_wn.mainloop()
def open_coin():
c_wn = Tk()
c_wn.title("Random App - Flip a Coin")
c_wn.geometry("600x400")
c_wn.resizable(False, False)
Label(c_wn, text=" ").grid(row=0, column=0)
Label(c_wn, text="Flip the coin below!").grid(row=0, column=1)
c_wn.mainloop()
def open_average():
avg_wn = Tk()
avg_wn.title("Random App - Flip a Coin")
avg_wn.geometry("600x400")
avg_wn.resizable(False, False)
Label(avg_wn, text=" ").grid(row=0, column=0)
Label(avg_wn, text="Enter your values below to get the averages in mean, median, mode, and range").grid(row=0,
column=1)
entry_avg = Entry(avg_wn).grid(row=1, column=1)
def calculate_mean():
print(entry_avg.get().split(','))
Button(avg_wn, text='test', command=calculate_mean).grid(row=2, column=1)
Label(root, text=" ").grid(row=0, column=0)
title = Label(root, text="Welcome to Random")
title.config(font=("Yu Gothic UI", 24))
title.grid(row=0, column=1)
button1 = Button(root, text=" Spin a wheel ", padx=80, pady=25, command=open_saw)
button1.place(x=2.25, y=100)
button2 = Button(root, text="Calculate mean, mode, median, and range", padx=20, pady=25, command=open_average)
button2.place(x=325, y=100)
button3 = Button(root, text="Flip a Coin", padx=125, pady=25, command=open_coin)
button3.place(x=2.25, y=200)
button4 = Button(root, text="Roll a die", padx=107.5, pady=25)
button4.place(x=325, y=200)
root.mainloop()
我想要的是从条目中获取一个列表,以便我可以计算均值、众数、中位数等,但是当我这样做时,我收到一个错误。错误如下:
line 44, in calculate_mean
print(entry_avg.get().split(','))
AttributeError: 'NoneType' object has no attribute 'get'
请帮忙,因为我是编程的初学者,而且我一直坚持这一点。如果您需要更多信息,请告诉我,我会给您。
似乎 Entry.grid
没有 return 任何东西(即 None
)。尝试将 grid
调用和 Entry
实例化放在 open_average
函数的不同行上:
entry_avg = Entry(avg_wn)
entry_avg.grid(row=1, column=1)
而不是
entry_avg = Entry(avg_wn).grid(row=1, column=1)