#python #python-3.x #tkinter #ttk
Вопрос:
Как я могу передать var/значение из командной кнопки в def и реализовать его в if внутри def ChangConfWI, чтобы получить желаемое значение?
Имея 3 кнопки, мне нужно, чтобы в зависимости от того, на какую кнопку вы нажмете, она получала определенный var внутри деф ChangConfWI, для этого я использую оператор 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) "nn" str(headers) "nn" str(payload) "nn" "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 amp; invalid value", command=ChangConfWI(vliv)).grid(column=0, row=2,
padx=10, pady=10)
Комментарии:
1. Чего пытается достичь ваш код? Я не знаю твоей конечной цели.
2. Используйте a
lambda
вcommand
аргументе.3. Как сказал Бармар: измените
command=ChangConfWI(wi)
наcommand=lambda: ChangConfWI(wi)
4. спасибо всем вам, сделали это несколько раз в этом проекте и совершенно пусто
Ответ №1:
ttk.Button(frmbut2, width="20", text="without inputs", command=lambda: ChangConfWI(1)).grid(column=0, row=0, padx=10, pady=10)