tkinter 粘性格式之间有什么区别

what is the difference between tkinter sticky formats

我正在尝试学习 tkinter,但我一直无法找到解释为什么我看到 'sticky' 选项示例以不同格式编写的答案,例如:

enter sticky = N+E+S+W
sticky=NW
sticky="ew"
sticky=tk.W+tk.N

大写(我认为通常表示常量)、+ 符号(字符串连接)和 tk 有什么意义吗? (一个方法)。是个人喜好,它们做不同的事情,还是取决于它们的使用环境?

NSEW 是由 tkinter 模块定义的常量。它们每个都包含一个字符串,其中包含与名称匹配的单个字符(例如:N = "n")。因为它们是全局常量,所以它们是大写的以符合 PEP8.

您有时会看到以 tk.tkinter 为前缀的常量的原因与常量的导入方式有关。如果你这样做 from tkinter import * 你不使用前缀。如果您使用 import tkinter,则使用 tkinter. 前缀。如果你使用 import tkinter as tk 你使用 tk. 前缀。这不是 tkinter 独有的,它是导入在所有 python.

中的工作方式

sticky 属性需要一个字符串。这是它唯一接受的东西。该字符串可以包含任何字符“n”、“s”、“e”、“w”。 Tkinter 不关心你如何创建字符串。您可以传递 "nsew""news"N + "e" + "s" + W 或任何其他技术。

就我个人而言,我发现常量毫无用处。只使用文字字符串要容易得多。