简体   繁体   English

从 tkinter python 3.6 中的另一个 class 调用

[英]Calling from another class in tkinter python 3.6

Please how can I call 'new' in class staff from self.btn2 in class intro Here is my code请我如何在 class 介绍中的 self.btn2 中调用 class 员工中的“新” 这是我的代码

import tkinter
class intro:
   def __init__(self, page1):
     self.page1 = page1
     
     self.btn = tkinter.Button(page1, text="next", command=self.me).grid(column=0, row=0)
     self.btn2 = tkinter.Button(page1, text="message", command=staff.new(self)).grid(column=1, row=0)
   def me(self):
     self.page2 = tkinter.Toplevel()
     self.b = admin(self.page2)
     self.page1.withdraw()


class admin:
   def __init__(self, page2):
     self.page2 = page2

     self.btn = tkinter.Button(page2, text="next", command=self.me2).grid(column=0, row=0)

   def me2(self):
     self.page3 = tkinter.Toplevel()
     self.b = staff(self.page3)
     self.page2.withdraw()


class staff:
   def __init__(self, page3):
     self.page3 = page3

   def new(self):
       print("hello everybody")

if __name__ == '__main__':
   window = tkinter.Tk()
   app = intro(window)
   window.mainloop()

Please help.请帮忙。 I want to be able to call 'new' in class staff from button in class intro.我希望能够通过 class 介绍中的按钮在 class 工作人员中调用“新”。 I use python 3.6.我使用 python 3.6。

From the comment of @acw1668, I repost the question in a better way as answered从@acw1668 的评论中,我以更好的方式重新发布了这个问题作为回答

import tkinter
class intro:
   def __init__(self, page1):
     self.page1 = page1
     
     self.btn = tkinter.Button(page1, text="next", command=self.me).grid(column=0, row=0)
     self.btn2 = tkinter.Button(page1, text="message", command=lambda: staff(self.page1).new()).grid(column=1, row=0)
   def me(self):
     self.page2 = tkinter.Toplevel()
     self.b = admin(self.page2)
     self.page1.withdraw()


class admin:
   def __init__(self, page2):
     self.page2 = page2

     self.btn = tkinter.Button(page2, text="next", command=self.me2).grid(column=0, row=0)

   def me2(self):
     self.page3 = tkinter.Toplevel()
     self.b = staff(self.page3)
     self.page2.withdraw()


class staff:
   def __init__(self, page3):
     self.page3 = page3

   def new(self):
       print("hello everybody")

if __name__ == '__main__':
   window = tkinter.Tk()
   app = intro(window)
   window.mainloop()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM