Tkinter - 在调用 Misc.lower() 方法时删除 Canvas 的小部件
Tkinter - Deleting widgets of a Canvas when calling Misc.lower() method
我正在 python 中使用 tkinter 开发 GUI。但我在这里遇到了一些问题。我正在创建一个按钮,一旦单击它就会返回一个页面(Misc.lower(canvas2)
和 Misc.lift(canvas1)
)。虽然我为 self.canvas2
上的按钮创建了一个 window,但当 canvas 降低时按钮仍然存在。
这是我的代码:
from tkinter import *
class Application:
def __init__(self):
self.window = Tk()
self.window.geometry("1280x720")
self.canvas1 = Canvas(self.window, highlightthickness=0, bg="#1b1b1b")
self.canvas2 = Canvas(self.window, highlightthickness=0, bg="red2")
self.initButtons()
self.window.mainloop()
def initButtons(self, *args):
buttons = {}
self.buttonList = []
buttons['backButtons'] = Button(self.window, bd=0, activebackground="#1b1b1b", bg="#1b1b1b", text='Back', fg="#ffffff")
self.buttonList.append(buttons['backButtons'])
self.initSecondWindow()
def initFirstWindow(self, *args):
Misc.lower(self.canvas2)
self.canvas1.place(relwidth=1, relheight=1)
def initSecondWindow(self, *args):
backButton = self.buttonList[0]
backButton.config(command=self.initFirstWindow)
self.canvas2.place(relwidth=1, relheight=1)
self.canvas2.create_window(640, 360, window=backButton)
Application()
我读了一些关于 canvas.delete()
的内容,但我不确定它是如何工作的。
提前致谢!
不确定您为什么只想隐藏它,那么用户将如何重定向到上一页?这是你想要的吗?
from tkinter import *
class Application:
def __init__(self):
# self.backButton = None
self.window = Tk()
self.window.geometry("1280x720")
self.canvas1 = Canvas(self.window, highlightthickness=0, bg="#1b1b1b")
self.canvas2 = Canvas(self.window, highlightthickness=0, bg="red2")
self.initButtons()
self.window.mainloop()
def initButtons(self, *args):
buttons = {}
self.buttonList = []
buttons['backButtons'] = Button(self.window, bd=0, activebackground="#1b1b1b", bg="#1b1b1b", text='Back', fg="#ffffff")
self.buttonList.append(buttons['backButtons'])
self.initSecondWindow()
def initFirstWindow(self, *args):
Misc.lower(self.canvas2)
self.canvas2.delete(self.res)
self.canvas1.place(relwidth=1, relheight=1)
def initSecondWindow(self, *args):
backButton = self.buttonList[0]
backButton.config(command=self.initFirstWindow)
self.canvas2.place(relwidth=1, relheight=1)
self.res = self.canvas2.create_window(640, 360, window=backButton)
Application()
我正在 python 中使用 tkinter 开发 GUI。但我在这里遇到了一些问题。我正在创建一个按钮,一旦单击它就会返回一个页面(Misc.lower(canvas2)
和 Misc.lift(canvas1)
)。虽然我为 self.canvas2
上的按钮创建了一个 window,但当 canvas 降低时按钮仍然存在。
这是我的代码:
from tkinter import *
class Application:
def __init__(self):
self.window = Tk()
self.window.geometry("1280x720")
self.canvas1 = Canvas(self.window, highlightthickness=0, bg="#1b1b1b")
self.canvas2 = Canvas(self.window, highlightthickness=0, bg="red2")
self.initButtons()
self.window.mainloop()
def initButtons(self, *args):
buttons = {}
self.buttonList = []
buttons['backButtons'] = Button(self.window, bd=0, activebackground="#1b1b1b", bg="#1b1b1b", text='Back', fg="#ffffff")
self.buttonList.append(buttons['backButtons'])
self.initSecondWindow()
def initFirstWindow(self, *args):
Misc.lower(self.canvas2)
self.canvas1.place(relwidth=1, relheight=1)
def initSecondWindow(self, *args):
backButton = self.buttonList[0]
backButton.config(command=self.initFirstWindow)
self.canvas2.place(relwidth=1, relheight=1)
self.canvas2.create_window(640, 360, window=backButton)
Application()
我读了一些关于 canvas.delete()
的内容,但我不确定它是如何工作的。
提前致谢!
不确定您为什么只想隐藏它,那么用户将如何重定向到上一页?这是你想要的吗?
from tkinter import *
class Application:
def __init__(self):
# self.backButton = None
self.window = Tk()
self.window.geometry("1280x720")
self.canvas1 = Canvas(self.window, highlightthickness=0, bg="#1b1b1b")
self.canvas2 = Canvas(self.window, highlightthickness=0, bg="red2")
self.initButtons()
self.window.mainloop()
def initButtons(self, *args):
buttons = {}
self.buttonList = []
buttons['backButtons'] = Button(self.window, bd=0, activebackground="#1b1b1b", bg="#1b1b1b", text='Back', fg="#ffffff")
self.buttonList.append(buttons['backButtons'])
self.initSecondWindow()
def initFirstWindow(self, *args):
Misc.lower(self.canvas2)
self.canvas2.delete(self.res)
self.canvas1.place(relwidth=1, relheight=1)
def initSecondWindow(self, *args):
backButton = self.buttonList[0]
backButton.config(command=self.initFirstWindow)
self.canvas2.place(relwidth=1, relheight=1)
self.res = self.canvas2.create_window(640, 360, window=backButton)
Application()