【问题标题】:How to switch screens using tkinter?如何使用 tkinter 切换屏幕?
【发布时间】:2022-01-06 23:08:59
【问题描述】:

我想使用 tkinter 模块切换屏幕。

是否可以无框切换画面?

这是我做的代码。

#frame1.py
from tkinter import *

root=Tk()
root.title('page1')

def goto_p2():
    root.destroy()
    import frame2
Button(root, text="goto page1", command=goto_p2).pack()

mainloop()

.

#frame2.py
from tkinter import *

root=Tk()
root.title('page1')

def goto_p1():
    root.destroy()
    import frame1
Button(root, text="goto page2", command=goto_p1).pack()

mainloop()

【问题讨论】:

  • 不使用框架是什么原因?

标签: python python-3.x tkinter


【解决方案1】:

给你,示例代码如何做到这一点。

import tkinter as tk
from tkinter import Button,Label


def clear_frame():
    for widget in window.winfo_children():
        widget.destroy()


def screen_two():
    clear_frame()
    button_2 = Button(window, text="Go to  screen one", command=lambda: screen_one())
    button_2.pack(pady=10)
    label_2 = Label(window, text="Label on window two")
    label_2.pack(pady=10)


def screen_one():
    clear_frame()
    button_1 = Button(window, text="Go to screen two", command=lambda: screen_two())
    button_1.pack(pady=10)
    label_1 = Label(window, text="Label on window one")
    label_1.pack(pady=10)


window = tk.Tk()
window.title("Test")
window.geometry('250x100')

screen_one()
window.mainloop()

[编辑]

函数clear_frame() 将销毁框架中的每个小部件(基本上它会清除屏幕)。除了clear_frame(),还有两个函数screen_two()screen_one()。这两个函数都在做同样的事情,调用clear_frame() 函数,并显示一个按钮和一个标签。 (唯一的区别是标签内的文本和按钮内的文本)。 当代码运行时,它将创建windowgeometry250x100。它将调用screen_one() 函数并运行mainloop()

【讨论】:

  • 虽然此代码可能会回答问题,但可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
猜你喜欢
  • 2021-10-06
  • 2020-04-20
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多