Video Editor Clean up
Deferring command execution with a simple lambda
It is very similar to what you did, but no need to bring in heavier artillery like functools.partial, especially because you have no idea who is going to read your code and they may not understand it :(
I'd go with
def addText(self, x=0):
    if x == 0:
        button = Button(root, command=lambda: self.addText(1))
    else:
        # run other stuff for function


If this still annoys you because of the recursive call, then consider:
def auxiliaryStuff(self, x):
    # run other stuff for function

def addText(self, x=0):
    if x == 0:
        button = Button(root, command=lambda: self.auxiliaryStuff(1))
    else:
        self.auxiliaryStuff(x)

I'm assuming x can take values other than 1 or 0 from other places in your code. If they are always either 1 or 0 and they just represent a flag, consider using True and False instead.