创建一个按钮来更改菜单

时间:2014-11-15 17:33:29

标签: python class python-3.x tkinter

我尝试使用Python3中的类创建一个简单的菜单。我已尝试使用“其他菜单”创建初始菜单。按钮,然后一旦点击它将带我到另一个菜单'这是另一个菜单'按钮。

然而,它目前只在启动时显示两个菜单。

最终我想要一个12个按钮的初始菜单,然后重定向到其他菜单。我可以通过创建一个新窗口来做到这一点,但我宁愿将它保存在同一个窗口中。

我在下面做错了什么?

#import the tkinter module
from tkinter import *

#create a new class
class Try(Frame):
    def __init__(self, master):
        super(Try, self).__init__(master)
        self.grid(row = 2, sticky = W+E+N+S)
        #,padx=300
        self.create_widgets()

    def create_widgets(self):

        #create buttons
        self.bttn1 = Button(self, text = 'Other Menu')
        self.bttn1['command'] = self.create_widgets2()
        self.bttn1.grid(sticky = W+E+N+S) 

    def create_widgets2(self):

        #create buttons
        self.bttn2 = Button(self, text = 'This is the other menu')
        self.bttn2.grid(sticky = W+E+N+S) 

#main
root = Tk()
root.title('Editor')
root.geometry()
root.configure(background='black')

app = Try(root)

root.mainloop()

1 个答案:

答案 0 :(得分:0)

当您指定按钮的create_widgets2选项时,您正在create_widgets方法中调用command方法:

self.bttn1['command'] = self.create_widgets2()
#                                           ^^

您需要删除括号,以便仅将command选项分配给函数对象:

self.bttn1['command'] = self.create_widgets2