Надеюсь, это не повторяется, похоже, я один из немногих, кто предпочитает использовать Tkinter в качестве Tkinter, а не в качестве TK .... Так что в значительной степени я использую классы для создания окон.Второе окно создает пользователя, но у меня возникают проблемы с использованием этого значения «имя пользователя» в другом классе.Чего мне не хватает?
(Отказ от ответственности, окна некрасивые, я сосредоточен на том, чтобы заставить функции работать.) Я попытался сделать значение username глобальной частью функции clicku()
...Я попытался сделать "username" функцией под Startwindow
(с ее собственным определением), я попытался извлечь ее напрямую (как показано здесь) ... Я переместил ее, попытался работать с местностями... Я потерялся.Может ли создание записи собственным классом сохранить эту проблему ... ???
from tkinter import *
class Window(Frame):
def __init__(self, master=None, *args, **kwargs):
Frame.__init__(self,master,*args,**kwargs)
self.pack()
self.pack_propagate(0)
self.labelone = Label(self, text = "Welcome to our class! Click start to begin")
self.labelone.grid(row=1,column=1)
self.buttonone = Button(self, text="start", command=click)
self.buttonone.grid(row=2,column=1)
class Startwindow(Frame):
def __init__(self, master=None, *args, **kwargs):
Frame.__init__(self,master,*args,**kwargs)
self.grid(row=5,column=5)
self.grid_propagate(0)
self.text = Label(self, text = "What is your name?")
self.text.grid(row=0,column=0)
self.entry = Entry(self, width=15)
self.entry.grid(row=1,column=0)
self.buttontwo = Button(self, text="enter", command=clicku)
self.buttontwo.grid(row=1,column=1)
self.username = self.entry.get()
class introwindow(Frame):
def __init__(self, master=None,*args,**kwargs):
Frame.__init__(self,master,*args,**kwargs)
user = str(w2.username)
self.grid()
self.grid_propagate(0)
self.a = Label(self, text = "Aki: ")
self.a.grid(row = 0, column = 0)
self.sp1 = Label(self, text = "Hi" + w2.username)
self.sp1.grid(row = 0, column = 1)
self.sp2 = Label(self, text = "Nice to meet you!")
self.sp1.grid(row = 1, column = 1)
self.talk = Entry(self, width = 15)
def click():
global w2
w.destroy()
w2 = Startwindow(root,width=500,height=500)
def clicku():
w2.destroy()
w3 = introwindow(root,width=500,height=500)
root = Tk()
w = Window(root, bg="red",width=500,height=500)
root.mainloop()
Я просто надеюсь напечатать имя пользователя в introwindow
как часть Label
sp1
.