这是有关同一问题的修订过的帖子。我想使用tkinter在框架(FrameFour)中添加一个按钮,当在组合框中选择某个值时,该按钮打开页面。例如,如果选择了1并单击了按钮,则应该打开frameOne,如果选择了两个并单击了按钮,则应该打开frameTwo。我对FrameFour拥有的代码如下
class PageFour(tk.Frame):
def __init__(self, parent,controller):
tk.Frame.__init__(self,parent)
self.InitUI()
def nextButton(self,controller):
if self.mychoice.get()=='1':
controller.show_frame(PageTwo)
def InitUI(self):
self.mychoice=StringVar()
self.combo = ttk.Combobox(self,width =15, textvariable=self.mychoice)
self.combo['values']=(" ","1","2")
self.combo.grid(column=1, row=0)
self.label=ttk.Label(self, text="How many files do you want to Process?")
self.label.grid(column=0, row=0)
self.button=ttk.Button(self, text="Next",command=self.nextButton)
self.button.grid(column=1, row=1)
app = GUI_ATT() app.mainloop()
但是现在我在运行代码时收到错误消息“ TypeError:nextButton()缺少1个必需的位置参数:'controller'”。所有其他页面均正常运行,并且可以正确链接。 请让我知道是否需要更多信息。
欢呼
答案 0 :(得分:0)
您已经有了Button和命令,无需再次进行设置。试试这个:
class PageFour(tk.Frame):
def __init__(self, parent,controller):
tk.Frame.__init__(self,parent)
self.controller = controller
self.InitUI()
def nextButton(self):
if self.mychoice.get()=='1':
self.controller.show_frame(PageTwo)
def InitUI(self):
self.mychoice=StringVar()
self.combo = ttk.Combobox(self,width =15, textvariable=self.mychoice)
self.combo['values']=(" ","1","2")
self.combo.grid(column=1, row=0)
self.label=ttk.Label(self, text="How many files do you want to Process?")
self.label.grid(column=0, row=0)
self.button=ttk.Button(self, text="Next",command=self.nextButton)
self.button.grid(column=1, row=1)