gpt4 book ai didi

python - Tkinter Canvas 问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:14 25 4
gpt4 key购买 nike

我正在尝试更改 Tkinter Canvas 小部件的分层。对于大多数小部件,您可以使用 lift 方法强制该小部件高于其他小部件。但是,如果我在 Canvas 小部件上尝试相同的操作,则会出现错误。

错误:

TypeError: tag_raise() got an unexpected keyword argument 'aboveThis'

我的问题的一个例子:

import Tkinter as Tk


root = Tk.Tk()

w, h = 200, 200

a = Tk.Canvas(root, bg='red', width=w, height=h)
a.grid(column=0, row=0)

b = Tk.Canvas(root, bg='blue', width=w, height=h)
b.grid(column=0, row=0)

a.lift(aboveThis=None)

root.mainloop()

如果我对 Frame 小部件执行相同的操作,它会起作用。

例子:

import Tkinter as Tk


root = Tk.Tk()

w, h = 200, 200

a = Tk.Frame(root, bg='red', width=w, height=h)
a.grid(column=0, row=0)

b = Tk.Frame(root, bg='blue', width=w, height=h)
b.grid(column=0, row=0)

a.lift(aboveThis=None)

root.mainloop()

最佳答案

canvas lift() 方法是 tag_raise() 的别名,它不是用来提升 Canvas 本身,而是用来提升 Canvas 中的实体。

我在 Tkinter.py 源代码中找到了这条评论:

# lower, tkraise/lift hide Misc.lower, Misc.tkraise/lift,
# so the preferred name for them is tag_lower, tag_raise
# (similar to tag_bind, and similar to the Text widget);
# unfortunately can't delete the old ones yet (maybe in 1.6)

如果将 a.lift(aboveThis=None) 替换为 Tk.Misc.lift(a, aboveThis=None),则 Canvas 小部件会正确提升。

关于python - Tkinter Canvas 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com