我正在尝试在基于products
的GUI中插入def some_view(request):
form = OrderForm(products=['product A', 'product B'])
# ...
# return some HttpResponse
字段。
它具有三个不同的“页面”作为带有按钮等的类,但是Entry
字段不起作用。
我想将输入字段放在最后一页(tkinter
)中。然后,我只想单击其中一个检查按钮,如果输入的文本将显示为打印,或者在GUI的另一个文本字段中,我将确定。
更新:我将输入代码更改为Entry
并制作了一个按钮class PageTwo
我得到的错误代码是:
controller.wordde = Entry(self)
这是代码:
print(controller.wordde.get())
答案 0 :(得分:0)
您必须将条目存储在某处,以便以后可以引用它。
对于您的代码,似乎最好的存储位置是在控制器中,因为它可以在所有页面上访问:
代替worden = Entry(self)
使用:
controller.worden = Entry(self)
这将在控制器对象中存储对您的输入实例的引用。稍后,您可以使用controller.worden.get()
来检索值:
print(controller.worden.get())
编辑:为了澄清-controller
是在此处创建的SeaofBTCapp
类的实例:
app = SeaofBTCapp()
该实例在此处传递给其他类的__init__
:
for F in (StartPage, PageOne, PageTwo):
frame = F(container, self) # self is the controller
现在,由于您将需要使用非controller
以外的其他方法访问__init__
,因此您还必须在这些类的实例中存储对控制器的引用。
更改__init__
,StartPage
和PageOne
类中的PageTwo
,以执行以下操作:
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
#.... rest of the method here ...
这意味着每个页面实例都有对作为属性存储的controller
的引用。现在,在那些不是__init__
的类的方法中,您可以使用self.controller
访问该对象:
def checkybutton2(self):
print(self.controller.wordde.get())