我目前正在编写使用Tkinter制作的GUI的代码。我的问题是我想创建一个脚本: 答:打开一个窗口(我这样做了,它循环了),如果窗口可以保持打开状态并切换到其自身的空白版本。 B:将“获取名称”中的所有名称放入列表中,然后打包到数据框中进行处理。 我写了重要的代码。
这是我的尝试
from tkinter import *
class Name:
def __init__(self):
window = Tk()
window.title('Names to be processed please: ')
frame1 = Frame(window)
frame1.pack()
label = Label(frame1, text = "Enter a name: ")
self.name = StringVar()
self.v1 = IntVar()
self.v2 = IntVar()
entryname = Entry(frame1, text = self.name)
btGetName = Button(frame1, text = 'Get Name', command = self.processButton)
btFinished = Checkbutton(frame1, text = 'Finished',
variable = self.v1, command = self.finishedButton)
btNotFinished = Checkbutton(frame1, text = 'Not Finished',
variable = self.v2, command = self.unfinishedButton)
label.grid(row = 1, column = 2)
btGetName.grid(row = 1, column = 3)
btFinished.grid(row = 2, column = 2)
btNotFinished.grid(row = 2, column = 3)
text = Text(window)
text.pack()
window.mainloop()
def processButton(self):
name = self.name.get()
return name
def finishedButton(self):
a = self.v1.get()
return a
def unfinishedButton(self):
b = (1 if self.v2.get() == 1 else 0)
return b
obj = Name()
name = []
while obj.finishedButton() != 1:
Name()
for i in obj.processButton():
name.append(i)
print(name)
常见的错误是我得到了一个空白列表。感谢您的帮助。
答案 0 :(得分:0)
您的代码中的简单错误。您要确保在布局中实际包含条目名,但我在代码中看不到。通过在网格线的其余部分之后添加mean_points_scored = np.average(points_scored, weights=game_number)
行,我将条目名添加到布局的底部。
添加此行应该可以解决您的问题。这样我就可以在函数entryname.grid(row = 3, column = 1)
中打印出self.name.get()
了。
更新:如果要将用户输入的名称保存到列表中,可以在功能processButton
中进行保存。请参阅以下代码,了解如何执行此操作。在这里,您可以从此列表创建一个数据框。
processButton