Home > Enterprise >  Running a function which is binded to a widget in python tkinter
Running a function which is binded to a widget in python tkinter

Time:04-30

import tkinter 
from tkinter import *
def printword(event):
    print("hello")

app = Tk()

textpane = tkinter.Text(app)
textpane.bind('<Control-Key-s>',printword)
textpane.pack()

printword()

app.mainloop()

When i run the code it gives me typeerror

TypeError: printword() missing 1 required positional argument: 'event'

how would I fix this ?

CodePudding user response:

Assuming that your function doesn't actually use the event object in its body, the simplest solution is to make the event parameter optional:

def printword(event=None):
    print("hello")

This lets you call it without parameters (printword()), while also allowing it to accept the argument passed in from tkinter's event handling mechanism.

  • Related