Python如何从命令按钮传递var / value并在if中使用它

Posted

技术标签:

【中文标题】Python如何从命令按钮传递var / value并在if中使用它【英文标题】:Python how to pass the var/value from the command button and use it in an 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, , text="without inputs", command=ChangConfWI(wi)).grid(column=0,row=0, padx=10, pady=10)
ttk.Button(frmbut2, , text="with invalid key", command=ChangConfWI(wik)).grid(column=0, row=1, padx=10,                                                                                 pady=10)
ttk.Button(frmbut2, , 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) 谢谢大家,在这个项目中做了几次,完全空白 【参考方案1】:
ttk.Button(frmbut2, , text="without inputs", command=lambda: ChangConfWI(1)).grid(column=0, row=0, padx=10, pady=10)

【讨论】:

以上是关于Python如何从命令按钮传递var / value并在if中使用它的主要内容,如果未能解决你的问题,请参考以下文章

将变量传递给炮兵脚本时出错

如何从命令行将参数传递给 Makefile?

从 PL/PGSQL 引用会话变量 (\set var='value')

如何将环境变量传递给传递给xmllint的命令?

如何在视图之间传递@State var?

Python argparse 如何从命令行传递 False?