The answer is: eval destroy [winfo children .] The `eval` is necessary so that the list of children windows can be separated into individual arguments. Destroy will get individual window names instead of one big string.