存储来自输入字段的用户条目,tkin

2024-10-03 13:26:48 发布

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

所以,我也看到了其他类似的问题,我很难理解这些问题,所以我问这个问题。

我有这个程序,大部分代码在下面,它是一个基本的图形用户界面。

我对输入用户名字和姓氏的字段有问题,与此相关的代码块如下:

tk.Label(self, text='First Name: ').pack(side=TOP)
EntryFieldFN = Entry(self)
EntryFieldFN.pack(pady=2, padx=2)

tk.Label(self, text='Surname: ').pack()
EntryFieldSN = Entry(self)
EntryFieldSN.pack(pady=2, padx=2)

FirstName = EntryFieldFN.get()
Surname = EntryFieldSN.get()  

我不知道如何将这些字段中的用户输入存储到变量中,以便以后使用。我希望在FinalWindow()函数中使用用户的名字和姓氏,它将用作订单的购买收据。

^{pr2}$

到目前为止,我已经尝试了一些方法,但都没有奏效,我不知道使用全局变量作为输入是否是个好主意。


Tags: 代码text用户selfsurname名字labelpack
1条回答
网友
1楼 · 发布于 2024-10-03 13:26:48

至少有两种方法可以解决这个问题。这两种方法都是先让按钮调用类的一部分方法:

OrderButton = Button(root, text='Order', command=self.do_order)

您还需要确保保留对条目小部件的引用,因此应该使用self.EntryFieldFN和{},而不是{}和{}。这样您就可以从类中的任何地方访问小部件。在

^{pr2}$

注意:这个概念适用于所有其他的输入小部件(例如:checkbutton)。我限制了这两个小部件的答案,以使代码示例更小更易于管理。在

这样,您可以做两件事之一:您的函数可以获取值并将其传递给FinalWindow,或者它可以将自身传递给FinalWindow,并让FinalWindow获得它需要的值。在

传递单个值

对于第一种情况,需要定义FinalWindow以将值作为参数:

def FinalWindow(first, last):
    ...

接下来,让do_order获取值并调用函数:

^{4}$

传递类实例

您可以将Till的实例传递给FinalWindow,而不是传递这些值。在

首先,修改FinalWindow以接受单个参数,它是Till的实例。然后实例就可以使用它来获取数据。在

def FinalWindow(till):
    first_name = till.EntryFieldFN.get()
    surname = till.EntryFieldSN.get()
    ...

接下来,修改do_order以将其自身传递给函数:

def do_order(self):
    window = FinalWindow(self)

相关问题 更多 >