【问题标题】:Python how to pass the var/value from the command button and use it in an ifPython如何从命令按钮传递var / value并在if中使用它
【发布时间】: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


【解决方案1】:
ttk.Button(frmbut2, width="20", text="without inputs", command=lambda: ChangConfWI(1)).grid(column=0, row=0, padx=10, pady=10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2013-06-14
    • 2016-01-04
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多