我有一个正在开发的类Client
的程序,它必须在两种状态之间转换:“登录”和“消息”。在“登录”状态期间,我正在显示一个 LoginFrame
(一个简单的登录屏幕),但是当我成功登录时,我想转换到 MessageFrame
( GUI 的核心)。我对 tkinter 还很陌生,我不确定如何正确管理这种转换,现在这是我的代码:
class Client:
root = Tk
def __init__(self):
self.root = Tk()
self.prompt_login()
def prompt_login(self):
login = LoginFrame(self.root, self)
self.root.mainloop()
def login(self, username, password):
#perform login logic here
self.transition_to_msg()
def transition_to_msg(self):
mw = MessageFrame(self.root, self)
它正在显示登录窗口,但不是转换,而是仅在登录窗口下显示 MessageFrame。
我的问题是这样的:
- 我应该如何正确管理这一转变?
- 我目前处理这个问题的方式(GUI 类与客户端主程序类分开)是否是正确的方法,或者我应该以不同的方式构建该程序?
最佳答案
创建两个类,它们都继承自Frame
。在其中一个中,放置登录窗口的所有小部件。另一方面,消息窗口的小部件。
使用第一帧填充窗口。当您想要转换时,将其销毁并使用另一个来填充窗口。
关于python - 转换 GUI 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144454/