如何在另一个函数中打印函数的Entry()?

您好,我正在尝试打印位于getWord()中的字符串:条目"motTexte",在Draw()中。但每次在条目中写入内容时,它都会在空闲的Python中打印一个空行。
代码:

选择 | 换行 | 行号
  1. from time import *
  2. from math import *
  3. from re import *
  4. from tkinter import *
  5.  
  6.  
  7.  
  8. def getWord():
  9.     rootMot = Toplevel(root)
  10.     motTexte = Entry(rootMot)
  11.     motTexte.get()
  12.     motTexte.pack()
  13.     getWord.motFinal = motTexte.get()
  14.     boutonMot = Button(rootMot, text="Submit", width=10,
  15.                        command=lambda: draw(rootMot))
  16.     boutonMot.pack()
  17.  
  18.  
  19. def draw(widget):
  20.     print(getWord.motFinal)
  21.     widget.destroy()
  22.     gameDraw = Canvas(root, width=200, height=100)
  23.     gameDraw.pack()
  24.  
  25.  
  26.  
  27. #Create the menu
  28. root = Tk()
  29. menu = Menu(root)
  30. root.config(menu=menu)
  31.  
  32.  
  33. gameOptions = Menu(menu)
  34. menu.add_cascade(label="Game", menu=gameOptions)
  35. gameOptions.add_command(label="New Game", command=getWord)
  36. gameOptions.add_command(label="Options...", command=getWord)
  37. gameOptions.add_separator()
  38. gameOptions.add_command(label="Exit", command=getWord)
  39.  
  40.  
  41. helpOptions = Menu(menu)
  42. menu.add_cascade(label="Help", menu=helpOptions)
  43. helpOptions.add_command(label="How to play...", command=getWord)
  44. helpOptions.add_command(label="About...", command=getWord)
  45. mainloop()

谢谢
PS:我是法国人,如果你不理解一些变量,我很抱歉:)

# 回答1


在分配给getWord.motFinal时,motTexte中没有文本。您可以将motTexte作为参数添加到按钮回调中,并在DRAW()中调用get()。

选择 | 换行 | 行号
  1. def getWord():
  2.     rootMot = Toplevel(root)
  3.     motTexte = Entry(rootMot)
  4.     motTexte.get()
  5.     motTexte.pack()
  6.     boutonMot = Button(rootMot, text="Submit", width=10,
  7.                        command=lambda: draw(rootMot, motTexte))
  8.     boutonMot.pack()
  9.  
  10. def draw(top, widget):
  11.     print(widget.get())
  12.     top.destroy()
  13.     gameDraw = Canvas(root, width=200, height=100)
  14.     gameDraw.pack()

您应该考虑将对话框包含在类对象中,在类对象中,各个元素被创建为实例对象,并可以通过属性引用访问(如self.motTexte中)。

标签: python

添加新评论