Надеюсь, я буду коротким и исправлюсь на этот раз.Я вижу много вопросов о классе, но не как полную структуру программы с несколькими классами с использованием данных и классов повторного использования.
Я пытаюсь создать приложение tkinter с классами.
Мне нужно, чтобы вы ответили: как мне отправить этот "txt1_lbl_var" на мою метку ClassMainScreen из моего ClassConnection.Пожалуйста, некоторые специальные учебные ссылки были бы хорошими.
Сначала я открываю ClassMainScreen, затем нажатием кнопки открываю ClassConnection.Здесь я настрою свое последовательное соединение и затем вернусь к ClasMainScreen с моей меткой txt1, обновленной txt1_lbl_var.Надеюсь, вы понимаете, что я пытаюсь сделать.Как переход между классами и повторное использование переменных - я не уверен, что это глобальные переменные.
Мой код:
import tkinter as tk
class ClassMainScreen:
def __init__(self, masterMainScreen):
self.master = masterMainScreen
self.frame = tk.Frame(self.master)
self.frame.configure(width=50, bg="purple", height=50, padx=500, pady=300)
self.button1 = tk.Button(self.frame, text="Set Connection", width=25, command = self.connection_window)
self.button1.pack()
self.txt1_lbl_var = tk.StringVar()
self.txt1_lbl_var.set("Waiting...")
self.txt1 = tk.Label(self.master, textvariable=self.txt1_lbl_var)
self.txt1.pack()
self.frame.pack()
self.newWindow = tk.Frame()
def connection_window(self):
self.newWindow = tk.Toplevel(self.master)
ClassConnection(self.newWindow)
def serialRead_window(self):
self.newWindow = tk.Toplevel(self.master)
ClassSerialRead(self.newWindow)
class ClassConnection:
def __init__(self, masterConnection):
self.master = masterConnection
self.master.title("Set connection")
self.master.geometry("550x500")
self.frame = tk.Frame(self.master)
self.sendButton = tk.Button(self.frame, text="Send", width=25, command=self.sendConn)
self.sendButton.pack()
self.frame.pack()
def sendConn(self):
a = ClassMainScreen(self.master)
a.txt1_lbl_var.set("23456")
class ClassSerialRead:
def __init__(self, masterClassSerialRead):
self.master = masterClassSerialRead
self.master.title("Set connection")
self.master.geometry("250x50")
self.frame = tk.Frame(self.master)
def main():
root = tk.Tk()
ArduinoApplication = ClassMainScreen(root)
root.mainloop()
if __name__ == '__main__':
main()