python - 转换 GUI 状态

标签 python python-3.x user-interface tkinter

我有一个正在开发的类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。

我的问题是这样的:

  1. 我应该如何正确管理这一转变?
  2. 我目前处理这个问题的方式(GUI 类与客户端主程序类分开)是否是正确的方法,或者我应该以不同的方式构建该程序?

最佳答案

创建两个类,它们都继承自Frame。在其中一个中,放置登录窗口的所有小部件。另一方面,消息窗口的小部件。

使用第一帧填充窗口。当您想要转换时,将其销毁并使用另一个来填充窗口。

关于python - 转换 GUI 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144454/

相关文章:

python - django 1.3 - 无法注册我的自定义 UserAdmin

python - 创建 mongodb 备份并上传到 amazon s3

python - Eratosthenes 筛法返回大的合数(这是一个错误)

python - 暂停 PyTest 并等待用户输入

html - 如何使图像拉伸(stretch)到特定段落?

python - Django:Cookie 设置为 30 秒后过期实际上是 30 分钟后过期?

python - 将进程附加到列表(但不对其进行任何操作)会改变程序行为

c# - 创建像 Office 2010 一样的动画启动画面

css - 使用 HTML <SPAN> 标签和 CSS 设置文本中重叠注释的样式

java - 在图像中查找图像