【发布时间】:2021-08-20 17:51:48
【问题描述】:
如何将命令按钮中的 var/value 传递到 def 并在 def ChangConfWI 内的 if 中实现它以获得所需的值?
有 3 个按钮,我需要根据您单击的按钮在 def ChangConfWI 中获取特定的 var,因为我使用 if 语句
global ocppurl, tiporeq, headers, payload, timeoutvar
ocppurl = "http://oxxxxxxx.com/xxxxxxx-ws/rest/xxxxx/"
headers = "{'Content-Type': 'application/json', 'stat': '00012'}"
timeoutvar = 30
def ChangConfWI(var):
if var == wi:
tiporeq = "onething"
payload = json.dumps({0})
elif var == wik:
tiporeq = "something"
payload = json.dumps({1})
elif var == vliv:
tiporeq = "congo"
payload = json.dumps({2})
pedido = str(ocppurl + tiporeq) + "\n\n" + str(headers) + "\n\n" + str(payload) + "\n\n" + "Timeout:" + str(timeoutvar)
reqinp.delete('1.0', END)
reqinp.insert(tk.INSERT, pedido)
ttk.Button(frmbut2, width="20", text="without inputs", command=ChangConfWI(wi)).grid(column=0,row=0, padx=10, pady=10)
ttk.Button(frmbut2, width="20", text="with invalid key", command=ChangConfWI(wik)).grid(column=0, row=1, padx=10, pady=10)
ttk.Button(frmbut2, width="20", text="with valid key & invalid value", command=ChangConfWI(vliv)).grid(column=0, row=2,
padx=10, pady=10)
【问题讨论】:
-
你的代码试图完成什么?我不知道你的最终目标。
-
在
command参数中使用lambda。 -
正如 Barmar 所说:将
command=ChangConfWI(wi)更改为command=lambda: ChangConfWI(wi) -
谢谢大家,在这个项目中做了几次,完全空白
标签: python python-3.x tkinter ttk