如果我在一个函数中创建了小部件,如何使用Python Tkinter在另一个函数中访问它们?

费瑟哈特爵士

这是我使用Tkinter的第一个项目,所以如果问题很简单,请原谅。根据用户从下拉菜单中选择的选项,我调用一个函数来创建某些小部件(例如条目)并将其放置在框架上。然后,当按下另一个按钮时,我要访问此条目内的文本。但是,这似乎给了我错误(说未定义窗口小部件),因为我想访问在调用函数时创建的窗口小部件。

我看到的一个显而易见的解决方案是创建我想在函数外部使用的所有可能的小部件,并且仅在调用函数时放置它们。这似乎很草率,并且会产生更多问题。还有其他解决方法吗?

提前致谢!

这是我在窗口小部件上创建和放置小部件的功能。

def loadBook():
    print("book is loaded")
    #Authors
    labelAuth1 = tk.Label(frame, text="Author 1 Name:")
    entryAuth1 = tk.Entry(frame)

    labelAuth1.place(relwidth=0.23, relheight=0.08, rely=0.1)
    entryAuth1.place(relheight=0.08, relwidth=0.18, relx=0.3, rely=0.1)

这是一个使用我上面创建的入口小部件的输入的函数的片段:

def isBook():
    if len(entryAuthSur1.get())==0:
        pass
    else:
        bookString = ""
        bookString += entryAuthSur1.get()

当第二个函数执行时,出现entryAuthSur1未定义的运行时错误

蜥蜴

函数内部的所有变量都是局部的。这意味着在函数调用结束后将其删除。由于您的变量(entryAuth1)不是全局变量,因此它仅存在于函数内部,并在loadBook函数结束时被删除这是工作代码:

import tkinter as tk

# Making a window for the widgets
root = tk.Tk()


def loadBook():
    global entryAuth1 # make the entry global so all functions can access it
    print("book is loaded")
    #Authors
    labelAuth1 = tk.Label(root, text="Author 1 Name:")
    entryAuth1 = tk.Entry(root)
    # I will check if the user presses the enter key to run the second function
    entryAuth1.bind("<Return>", lambda e: isBook())

    labelAuth1.pack()
    entryAuth1.pack()

def isBook():
    global entryAuth1 # make the entry global so all functions can access it

    # Here you had `entryAuthSur1` but I guess it is the same as `entryAuth1`
    if len(entryAuth1.get())==0:
        pass
    else:
        bookString = ""
        bookString += entryAuth1.get()
        print(bookString) # I am going to print the result to the screen


# Call the first function
loadBook()

root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用js创建两个元素,然后稍后在另一个函数中访问它们

来自分类Dev

在另一个函数中访问函数结果

来自分类Dev

在Tkinter中滚动一个小部件与另一个小部件

来自分类Dev

如果我创建了另一个用户模型,是否可以在Laravel中实现actingAs()函数?

来自分类Dev

在另一个函数中访问一个函数内部的Python变量

来自分类Dev

在一个文件中创建一个函数并从另一个文件访问它 - Python

来自分类Dev

从另一个函数访问对象中的变量

来自分类Dev

在另一个函数中访问对象属性

来自分类Dev

在另一个函数中访问var

来自分类Dev

如何在python中的另一个函数中使用一个函数

来自分类Dev

在JavaScript中从一个函数访问变量到另一个函数

来自分类Dev

如何使用Tkinter从python中的另一个文件访问函数。我找不到针对自己特定问题的任何解决方案

来自分类Dev

如何从python中的另一个文件访问构造函数中定义的变量

来自分类Dev

如何从同一类的另一个函数访问一个函数中的变量?

来自分类Dev

使用Python在另一个函数中使用一个函数中的变量

来自分类Dev

如何访问同一实例中另一个类中的函数?

来自分类Dev

Python:如何在另一个函数中包含一个函数?

来自分类Dev

如何在另一个函数中的一个函数中使用值

来自分类Dev

如何从另一个函数内部使用一个函数中的数组

来自分类Dev

如何在另一个函数python中访问返回类值

来自分类Dev

如何从外部javascript文件访问嵌入到另一个函数中的函数?

来自分类Dev

如何在一个函数中设置全局变量并使另一个函数访问它?

来自分类Dev

如何访问一个函数在另一个函数中定义和声明的数组?

来自分类Dev

使用class()方法时从函数中的另一个函数访问变量

来自分类Dev

使用class()方法时从函数中的另一个函数访问变量

来自分类Dev

在tkinter中,如何访问在另一个窗口中创建的变量?

来自分类Dev

从同一类中的另一个构造函数访问构造函数变量

来自分类Dev

如何在Python中的类中对另一个函数使用一个函数

来自分类Dev

Python从另一个函数调用一个函数中的函数

Related 相关文章

  1. 1

    使用js创建两个元素,然后稍后在另一个函数中访问它们

  2. 2

    在另一个函数中访问函数结果

  3. 3

    在Tkinter中滚动一个小部件与另一个小部件

  4. 4

    如果我创建了另一个用户模型,是否可以在Laravel中实现actingAs()函数?

  5. 5

    在另一个函数中访问一个函数内部的Python变量

  6. 6

    在一个文件中创建一个函数并从另一个文件访问它 - Python

  7. 7

    从另一个函数访问对象中的变量

  8. 8

    在另一个函数中访问对象属性

  9. 9

    在另一个函数中访问var

  10. 10

    如何在python中的另一个函数中使用一个函数

  11. 11

    在JavaScript中从一个函数访问变量到另一个函数

  12. 12

    如何使用Tkinter从python中的另一个文件访问函数。我找不到针对自己特定问题的任何解决方案

  13. 13

    如何从python中的另一个文件访问构造函数中定义的变量

  14. 14

    如何从同一类的另一个函数访问一个函数中的变量?

  15. 15

    使用Python在另一个函数中使用一个函数中的变量

  16. 16

    如何访问同一实例中另一个类中的函数?

  17. 17

    Python:如何在另一个函数中包含一个函数?

  18. 18

    如何在另一个函数中的一个函数中使用值

  19. 19

    如何从另一个函数内部使用一个函数中的数组

  20. 20

    如何在另一个函数python中访问返回类值

  21. 21

    如何从外部javascript文件访问嵌入到另一个函数中的函数?

  22. 22

    如何在一个函数中设置全局变量并使另一个函数访问它?

  23. 23

    如何访问一个函数在另一个函数中定义和声明的数组?

  24. 24

    使用class()方法时从函数中的另一个函数访问变量

  25. 25

    使用class()方法时从函数中的另一个函数访问变量

  26. 26

    在tkinter中,如何访问在另一个窗口中创建的变量?

  27. 27

    从同一类中的另一个构造函数访问构造函数变量

  28. 28

    如何在Python中的类中对另一个函数使用一个函数

  29. 29

    Python从另一个函数调用一个函数中的函数

热门标签

归档