【问题标题】:Python error when trying to use multiple functions in a class. Tkinter尝试在一个类中使用多个函数时出现 Python 错误。特金特
【发布时间】:2014-12-09 01:22:51
【问题描述】:

我在获取此代码以在 tkinter 中解析时遇到问题。出现两个问题。我无法将 everb5 变量传递给生成函数。

class App(Tk): 
def __init__(self): 
    Tk.__init__(self)
    self.everb5 = Entry(self).grid(row = 19, column = 2)
    self.btn = Button(self, text = "Generate", command = self.generate).grid(row = 25, column = 3, columnspan = 3)
def generate(self):
    self.everb5.config(text= "Hello")

我是否也必须像这样将变量传递给生成函数...

def generate(self,everb5)

我还有大约 23 个变量必须在 init 函数的 generate 函数中起作用。下一步?包含所有变量数组的变量?我正在制作一个 mad libs 游戏,需要将 Tk() Entry() 函数的答案传递给 generate(),然后我计划使用 .format 函数将 mad libs 中使用的“空格”替换为提供的答案来自用户。我的按钮现在可以工作了,我只需要知道如何在函数之间传递变量。

【问题讨论】:

  • 打印自己 everb5.它是无。您必须首先在单独的行上捕获来自 Entry() 的返回,然后在 grid() 上捕获它,以便在单独的行上返回 None 。下次请将错误消息包含为 None 类型的对象等。消息使问题很明显。
  • 您还使用插入或文本变量作为条目小部件effbot.org/tkinterbook/entry.htm

标签: python function variables tkinter


【解决方案1】:

我猜问题是self.everb5self.btn 都没有。原因是grid 没有返回任何内容。您应该在创建 Entry 或 Button 实例后执行 grid:

class App(Tk): 
    def __init__(self): 
        Tk.__init__(self)
        self.everb5 = Entry(self)
        self.everb5.grid(row = 19, column = 2) #<-- here
        self.btn = Button(self, text = "Generate", command = self.generate)
        self.btn.grid(row = 25, column = 3, columnspan = 3) #<-- here

    def generate(self):
        self.everb5.config(text= "Hello")

【讨论】:

  • 显然它不喜欢我尝试使用一个衬垫。谢谢,我会做出适当的改变。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
相关资源
最近更新 更多