我目前正在构建一个基于用户的系统,我在pythons tkinter中有一个登录屏幕的类。一旦用户信息正确,它将启动菜单的类。我正在使用python读取和检查用户信息的SQL数据库。我将需要将用户的用户名传递给菜单类,以便类知道要在该菜单上显示的信息。
from tkinter import *
class Login:
def __init__(self, master):
self.master = master
self.label = Label(self.master, text = "enter name")
self.entry = Entry(self.master)
self.button = Button(self.master, text = "submit", command = self.loadMenu)
self.label.grid(row = 0, column = 0)
self.entry.grid(row = 0, column = 1)
self.button.grid(row = 1, column = 0, columnspan = 2)
self.name = self.entry.get()
def loadMenu(self):
self.menu = Toplevel(self.master)
self.app = Menu(self.menu)
class Menu:
def __init__(self, master):
self.master = master
self.label = Label(self.master, text = "dave")
self.label.grid(row = 0, column = 0)
def main():
root = Tk()
run = Login(root)
root.mainloop()
if __name__ == '__main__':
main()
在上面的示例代码中,可以使用什么方法来传递变量' self.name'到类菜单,以便它可以显示在标签中?我试图不使用全局变量。非常感谢。
答案 0 :(得分:0)
您的班级菜单需要一种方法来设置名称。 e.g:
class myMenu:
def __init__(self,...):
....
def set_Me(self,some_name):
self.some_name = some_name
# or
self.label.setName(some_name)
在您打电话的主程序中:
self.app.set_Me(self.name)
以上是伪代码。但你应该明白这个想法。 您可以使用此技术随时将变量传递给任何类。
如果只需要传递变量一次:
class my_class:
def __init__(self,my_variable):
self.my_variable = my_variable