【问题标题】:Why Tkinter geometry takes a string?为什么 Tkinter 几何需要一个字符串?
【发布时间】:2014-10-30 14:34:12
【问题描述】:

我最近一直在从事一个项目,该项目必须使用 Python 开发一个简单的 GUI 应用程序。我正在考虑将表单大小设置为默认值,并遇到了 minsize 和 geometry 方法。

minsize 有两个参数表示高度和宽度。

geometry 采用单个字符串表示信息。

我想知道为什么会出现差异?是否有充分的理由说明单个字符串比 2 个(如果包含位置,则为 4 个)值更好的参数来表示大小?

谢谢!

编辑:所以 tkinter 包装了 tcl 函数。为什么tcl的差异? 谢谢大家

【问题讨论】:

  • 因为tkinter Python 库本质上只是从另一种名为Tcl 的语言中获取了所有的GUI 工具。这就是Tcl 接受参数的方式,所以 Python 也跟着效仿。这真是一个tcl 的问题。
  • 这解释了 tkinter... 但只是将问题转移到 tcl.. 将更新标签
  • 这是因为 Tcl 读取其源代码的方式不同。每种数据都可以用字符串表示,数字和字符串、列表和字符串没有区别。如果参数列表只是两个整数,则很容易将其转换为 Pythonesque 语法。几何参数列表更难翻译。
  • Tkinter 只是 Python 标准库中包含的嵌入式 Tcl/Tk 的浅包装。 Tkinter 的非 Pythonic 部分只是将字符串传递给内部 Tcl 解释器。 Pythonic 部分正在构建命令字符串并以相同的方式发送它们。您甚至可以在 Python 中创建 Tcl 实例,而无需调用 Tk。
  • 感谢您的回答,将不得不在某个时候检查 Tcl! :)

标签: python tkinter tcl


【解决方案1】:

这是历史性的。 Tkinter 基于 tcl/tk。 Tcl/tk 源于 *nix 系统(unix、linux 等)。几何格式已经在 X11 窗口系统中使用了几十年,而 tk 只是 X11 库的包装器。

您可以在 X(7) 手册页中查看 X11 几何规范的描述。例如:http://www.x.org/archive/X11R6.8.0/doc/X.7.html#sect6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多