On 3/8/2023 4:56 PM, aapost wrote:
b = tk.Button(master=main, text="Enable")
b.config(
     command=lambda: (
         e1.config(state="normal"),
         e2.config(state="normal"),
         e3.config(state="normal")
     )
)

It's hard to understand what you are trying to do here. I don't remember just now what .config() will return, but the lambda will return a tuple of *something*, probably (None, None, None). Even if the tuple does contain three non-None values, config() requires named parameters, not a tuple. In the course of executing the lambda, your three controls e1, e2, and e2 will get configured, but you could just write a function to do that:

def set_entries_enabled_state(enabled = True):
    state = 'normal' if enabled else 'disabled'
    for e in (e1, e2, e3):
        e.config(state=state)

def config_b_and_entries(enabled = True):
    state = 'normal' if enabled else 'disabled'
    b.config(state = state)
    set_entries_enabled_state(enabled)

This is easy to read and understand. (I may not have remembered some Tk details correctly).


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to