Структура нескольких классов Tkinter - Как сделать с переменными - PullRequest
0 голосов
/ 21 декабря 2018

Надеюсь, я буду коротким и исправлюсь на этот раз.Я вижу много вопросов о классе, но не как полную структуру программы с несколькими классами с использованием данных и классов повторного использования.

Я пытаюсь создать приложение 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...