Tkinter - 如何在新窗口中创建按钮,该窗口是由被调用的函数创建的? Python 3

时间:2014-10-30 21:40:47

标签: python windows tkinter

from tkinter import *

def begin():
    root = Tk()
    root.title("main window")
    root.geometry("1920x1080")  
    return #How would a button be placed in this window made by this function?

root = Tk()
root.title("Start up page")
root.geometry("1920x1080")


BeginButton = Button(app, text = "Begin", command=begin, bg="green")
BeginButton.grid(column = 2, row = 2, sticky = W)
BeginButton.config(height = 10, width = 30 )

root.mainloop()

如果正在制作新窗口,我将如何在新窗口中创建新按钮,在这种情况下称为"开始"。

非常感谢任何回应!

1 个答案:

答案 0 :(得分:0)

我相信你想要做的是修改根窗口而不是创建一个新窗口。这是一个最小的工作示例:

from tkinter import *

root = Tk()

class App:
    def __init__(self):
        root.title("Start up page")
        root.geometry("1920x1080")
        self.beginB = Button(root, text="Begin", command=self.begin,
                        bg="green", height=10, width=30)
        self.beginB.grid(sticky = W)
    def begin(self):
        root.title("main window")
        self.beginB.destroy()
        del self.beginB
        self.goB = Button(root, text='Go on', command=self.go_on,
                                bg='red')
        self.goB.grid(sticky=E)
    def go_on(self):
        self.label = Label(root, text="you have continued")
        self.label.grid(row=1, sticky=S)

App()
root.mainloop()

定义类的一个优点是可以进行前向引用。在您的代码中,您必须在创建开始按钮之前定义begin函数。有了课,我可以把它放在 init 之后,这对我来说是一个更自然的顺序。初始化代码调用或绑定多个函数的情况更为明显。