我开始学习Tkinter并且每次都使用新的Tk实例创建新的窗口.我刚才读到这不是一个好习惯.如果是这样,为什么?怎么可以做得更好?我见过其他人用Toplevel和Frame实例创建窗口.使用这些有什么好处/缺点呢?如果这有所不...

我开始学习Tkinter并且每次都使用新的Tk实例创建新的窗口.我刚才读到这不是一个好习惯.如果是这样,为什么?怎么可以做得更好?我见过其他人用Toplevel和Frame实例创建窗口.使用这些有什么好处/缺点呢?
如果这有所不同:我正在编写代码的应用程序以登录窗口开始,然后进入第二个窗口,输入的密码是正确的.
解决方法:
每个tkinter程序只需要一个Tk实例. Tkinter是嵌入式tcl解释器的包装器.每个Tk实例都有自己的解释器副本,因此两个Tk实例有两个不同的命名空间.
如果您需要多个窗口,请创建一个Tk实例,然后其他窗口应该是Toplevel的实例.
虽然您可以创建,销毁和重新创建根窗口,但实际上没有意义.相反,为登录屏幕创建根窗口,然后只删除登录屏幕小部件并将其替换为第二个窗口.
如果您将每个“窗口”都设置为继承自tk.Frame的单独类,则这变得微不足道.因为tkinter会在框架被销毁时销毁所有子窗口小部件,所以很容易从一个“窗口”切换到另一个窗口.创建LoginFrame的实例并将其打包在根窗口中.当他们输入正确的密码时,销毁该实例,创建一个MainWindow实例并打包它.
本文标题为:python – Tkinter创建多个Windows – 使用新的Tk实例或Toplevel或Frame?


基础教程推荐
- 如何为绝对初学者制作Windows的Python扩展 2023-11-13
- 从python编译cpp失败但不在shell中 2023-11-11
- python-在Ubuntu 14.04上构建Pylucene(可信任的Tahr) 2023-11-12
- windows和linux下 Python2,Python3 的环境及安装 2023-09-04
- python-Windows Azure API:以编程方式创建VM 2023-11-12
- centos7 安装python3.7 2023-11-12
- 001_python多进程实例 2023-09-04
- python-从子进程实时打印标准输出 2023-11-13
- 【python测试开发栈】python内存管理机制(一)—引用计数 2023-11-12
- python初学定义函数 2023-08-09