从获取名称到列表的Tkinter信息

时间:2019-08-21 16:24:32

标签: python python-3.x tkinter

我目前正在编写使用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)

常见的错误是我得到了一个空白列表。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您的代码中的简单错误。您要确保在布局中实际包含条目名,但我在代码中看不到。通过在网格线的其余部分之后添加mean_points_scored = np.average(points_scored, weights=game_number) 行,我将条目名添加到布局的底部。

添加此行应该可以解决您的问题。这样我就可以在函数entryname.grid(row = 3, column = 1)中打印出self.name.get()了。

更新:如果要将用户输入的名称保存到列表中,可以在功能processButton中进行保存。请参阅以下代码,了解如何执行此操作。在这里,您可以从此列表创建一个数据框。

processButton