那是因为模块 tkinter
没有geometry
功能。这是Tk
实例。
这是完成您正在尝试做的事情的好方法:
import tkinter as tk # tk is a convenient, easy to type alias to use for tkinter.
gui = tk.Tk()
gui.geometry("500x500") # don't forget the quotes
为什么from tkinter import *
是导入 tkinter 的非理想方式
顺便说一句,告诉你这from tkinter import *
是一个坏主意的人是正确的——当你这样做时,你将所有 tkinter 的命名空间加载到你的模块的命名空间中。
如果你这样做,你可能会遇到令人不快的命名空间冲突,如下所示:
from tkinter import *
gui = Tk()
Label = "hello"
Label1 = Label(gui, text=Label)
# Traceback (most recent call last):
# File "stackoverflow.py", line 98, in <module>
# Label1 = Label(gui, text=Label)
# TypeError: 'str' object is not callable
您已经覆盖了对 tkinterLabel
小部件的引用 - 所以您不能再创建任何标签!当然,无论如何您都不应该像这样大写局部变量,但是当您可以这样做时,为什么还要担心避免这些命名空间问题:
import tkinter as tk
这种 ^^^^ 导入方法也更可取,因为如果在某些时候您想将 Tkinter 换成另一个具有类似实现的模块,而不是为 Tkinter 模块的所有元素组合代码,您可以这样:
#import tkinter as tk
import newTkinter as tk
你都准备好了。或者,如果你想使用另一个模块,它的类和方法恰好有一些相同的名称,下面会导致混乱:
from tkinter import *
from evilOverlappingModule import *
但这很好:
import tkinter as tk
import evilOverlappingModule as evil