Мои переменные страницы не будут работать, когда я соединяю страницы вместе - PullRequest
0 голосов
/ 10 января 2020

У меня есть 3 страницы. экран входа в систему, страницу столовой и страницу администратора. Когда я вхожу в систему, у меня есть два варианта: либо нажать кнопку, чтобы перейти на страницу столовой, либо нажать кнопку, чтобы перейти на страницу администратора. Открытие этих страниц с помощью кнопок работает, однако переменные на этих экранах работать не будут.

Функция «Все» - это все, что выбрано в моей столовой и на страницах администратора. Я понятия не имею, почему переменные не будут работать, когда я их так называю, но сами страницы работают.

def CallCanteen():
    from practice import All
def CallAdmin():
    from Admin import All

 if result:
            self.master.destroy()
            root=Tk()
            root.geometry("400x400")
            root.title("Canteen System")
            Label(text = "welcome to the dashboard").pack()
            Button(root, text = "Canteen Page", command=CallCanteen).pack()
            Button(root, text = "Admin Page",command=CallAdmin).pack()

Да, я пробовал:

def CallCanteen():
    from practice import *
def CallAdmin():
    from Admin import *

, но это вызывает синтаксическую ошибку.

1 Ответ

0 голосов
/ 11 января 2020

Вы должны поместить весь код в другие модули (в вашем случае «Admin» и «Practice») внутри класса. Это будет работать для вас.

Как я сделал в этом примере:

Module_1:

import tkinter as tk


def test_func():
    from Module_2 import TestClass


root = tk.Tk()

b = tk.Button(root, text="Click", command=lambda: test_func())
b.pack()

root.mainloop()

Module_2:

class TestClass:
    import tkinter as tk
    examle_variable = 0
    root = tk.Tk()
    lbl = tk.Label(root, text="Test Label")
    lbl.pack()
    root.mainloop()

Для доступа любая переменная использует имя class перед своим именем. В этом примере: TestClass.example_variable

Это будет работать для вас

...