python - tkinter 小部件的 cnf 参数

标签 python python-3.x tkinter

所以,我正在挖掘代码 here在每个类中(几乎)我都看到构造函数的参数 cnf={},但除非我错过了它,否则它没有明确说明 cnf 是/预期包含什么。任何人都可以解决这个问题吗?起初我以为这是传递给 tkinter 小部件的关键字,但 kw 很适合。所以,我对 cnf={} 扮演的角色以及 extra=() 参数感到困惑。

最佳答案

cnf 必须是一个配置字典,将选项名称映射到值。它可以按位置或按名称传递(但不能同时传递!)。当多个小部件具有一组通用选项时,这非常有用。选项也可以传递(通过关键字),并且单个选项覆盖字典中的任何选项。我用这个实验验证了这些细节,从 IDLE 运行。 (如果您从命令行运行以下命令,请将“-i”添加到命令行或将 root.mainloop() 添加到代码中。)

import tkinter as tk
root = tk.Tk()
d = {'bg': 'red'}
tk.Label(root, d).pack()
tk.Label(root, d, text='abc').pack()
tk.Label(root, cnf=d, text='abc').pack()
tk.Label(root, d, text='abc', bg='blue').pack()
tk.Label(root, d, cnf=d, text='abc').pack()

结果(垂直堆叠)是一个空白的红色标签、2 个红色的“abc”标签、一个蓝色的“abc”标签和 IDLE 的 Shell 中的 TypeError。

关于python - tkinter 小部件的 cnf 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34866697/

相关文章:

python - 递归错误 : maximum recursion depth exceeded in comparison Python

python - 识别 numpy 中的数字和数组类型

python - 使用 Tkinter 将一个按钮绑定(bind)到两个事件

Python Tkinter : Binding Keypress Event to Active Tab in ttk. 笔记本

python - 如何正确地将这些字符串连接在一起(按列然后按行)?

python - Unix 脚本命令在取消缓冲时中断终端

python - 在 Python 中创建函数参数的签名

python - Pandas : plot stacked barchart for row values

windows - 显示窗口后如何从 Tkinter 中删除 Canvas

python - 将 Python 和 Mechanize 与 ASP 表单结合使用