【发布时间】:2026-02-03 16:10:01
【问题描述】:
我正在制作一个使用 tkinter 构建 GUI 应用程序的框架,在我的代码中,我有一个 Scene 类,它有一个
add(widget,params)
创建tkinter 小部件并将其添加到场景小部件字典的函数。
但是我只能添加一个我已经为其构建了add() 函数的小部件,因为不同的小部件具有不同的命名参数。
我将如何创建一个函数,该函数采用{paramName,value} 形式的字典,然后将其传递给小部件函数
例如
scene.add(button, {'command':Click, "text":"click me"} )
我当前的代码是
import tkinter as tk
class scene():
def __init__(self, title, width, height):
self.widgets = {}
self.title = title
self.width = width
self.height = height
def add(self, name, type, widget, root, params):
if name in self.widgets.keys():
return
else:
if type == "button":
width = params[0]
height = params[1]
text = params[2]
self.widgets[name] = [widget(root,width=width, height=height,text=text),params[2:]]
def get(self,name):
if name in self.widgets.keys():
return self.widgets[name][0]
【问题讨论】:
-
您可能想在此处查看已接受答案的方法 4 *.com/questions/62050496/…
-
你知道
**kwargs吗? -
您能否澄清您的哪些代码或描述是正确的?描述说你有
Scene.add(self, widget, params),代码显示你有Scene.add(self, name, type, widget, root, params)。描述说你想传递“字典”{paramName,value}这是一个集合,但代码显示了一个正确的字典。 -
希望我正确理解了您的问题。如果重复项没有回答您试图询问的内容,请edit 澄清并像@tripleee 一样ping 我)删除重复项。
-
抱歉重复我在搜索答案时找不到它
标签: python tkinter named-parameters