我正在编写一个python GUI脚本,我有一个导入/来自的问题。
我发现我无法删除上面的一行,因为脚本无效。因此,为什么并且有没有办法缩短它?
脚本:
import tkinter
import tkinter.messagebox
from tkinter import *
from tkinter.filedialog import asksaveasfilename, askdirectory
from tkinter import ttk
...
答案 0 :(得分:1)
执行import tkinter
时,必须在所有tkinter命令和常量前加tkinter.
(例如:buttontkinter.Button(...)
,root=tkinter.Tk()
等。)
执行from tkinter import *
时,它会导入tkinter标记为可导出的所有内容,而 前缀为tkinter.
的内容(例如:button=Button(...)
, root=Tk()
等)
你应该做其中一个,而不是两个。最好做前者。为了减少输入,您可以使用别名导入,例如:
import tkinter as tk
...
root = tk.Tk()
button = tk.Button(root, ...)
请注意,这不是特定于tkinter的问题。这基本上是如何在python中导入所有模块的。
另请注意,虽然ttk
位于tkinter
,但在执行from tkinter import *
时却无法导入。此外,ttk将导出与tkinter同名的类(例如:它们都定义Button
)
有关更多信息,请阅读python文档中的the documentation on modules。您可能还想阅读ImportError when importing Tkinter in Python
的答案