我现在正在用tkinter做一个学校的项目,我已经设置了一个基本的欢迎界面,但是当我点击“开始”按钮后,我希望屏幕清空,这样我就可以创建另一个“页面”了。
我目前的代码是:
# IMPORTS #
import tkinter as tk
# ------- #
# Define Window #
window = tk.Tk()
window.title("Bioinformatics Showcase")
window.geometry("600x400")
# ------------- #
# Clear screen function #
def clearScreen(object):
screenItem = object.grid_slaves()
for i in screenItem:
i.destroy()
# --------------------- #
# Event functions #
def startEvent(event):
clearScreen(window)
# ------- #
# Create Welcome Page #
welcomeLabel = tk.Label(text="Welcome, User! :3")
welcomeLabel.place(relx = .5, rely = .1, anchor = "center")
# Make start button
startButton = tk.Button(window, text = "Click here to start")
startButton.place(relx = .5, rely = .5, anchor = "center")
# Bind button to start event
startButton.bind("<Button-1>", startEvent) # <Button-1> is the mouse left click
# ------------------- #
# Main loop keeps window open until user closes it #
window.mainloop()
出于某种原因,当我按下“点击这里开始”按钮时,什么也没有发生,通过清除屏幕,我的意思是我希望welcomeLabel和startButton从GUI屏幕上消失;我希望它看起来像我的代码只有以下内容:
window = tk.Tk()
window.title("Bioinformatics Showcase")
window.geometry("600x400")
window.mainloop()
2条答案
按热度按时间von4xj4u1#
创建一个框架,将所有元素放置在该框架中,然后销毁该框架将帮助您解决问题
下面是一个基本的例子:
这将破坏帧中的所有元素。
dgsult0t2#
您已经使用
.place()
将小部件放入window
中,因此需要使用.place_slaves()
而不是.grid_slaves()
来获取小部件列表:也可以使用
.winfo_children()
:注意,不推荐使用
object
作为变量名,因为它是Python中的保留字。