簡體   English   中英

python tkinter canvas 提升方法不起作用

[英]python tkinter canvas lift method does not work

我想知道如何在 Python Z6F8BBEA5A81184EBA08B78919FDZ1 中提升和降低 canvas object。 我試過canvas.lower()但它導致錯誤提示

_tkinter.TclError:wrong # args: should be ".!canvas lower tag0rld "belowThis?

我的腳本:

import tkinter as tk
import PIL.ImageTk as itk
window=tk.Tk()
image1=itk.PhotoImage(file="a.png")
canvas1 = tk.Canvas(window)
a=canvas1.create_image(0,0,image=image1)
canvas1.place(x=100,y=100)
canvas1.lower()
image2 = itk.PhotoImage(file="b.png")
canvas2 = tk.Canvas(window)
b = canvas2.create_image(0,0,image=image2)
canvas2.place(x=100,y=130)
window.mainloop()

圖像只是一個黑色方塊和一個白色方塊。

降低整個canvas:

import tkinter as tk

import tkinter as tk

window = tk.Tk()
canvas1 = tk.Canvas(window, bg="red")
canvas1.place(x=100,y=100)

canvas2 = tk.Canvas(window, bg="blue")
canvas2.place(x=100,y=130)

canvas2.tk.call('lower', canvas2._w, None)

window.mainloop()

root.mainloop()

這直接調用tcl命令但仍然有效。 問題是在tkinter.Canvas的定義中:

class Canvas(Widget, XView, YView):
    ...
    def tag_lower(self, *args):
        """Lower an item TAGORID given in ARGS
        (optional below another item)."""
        self.tk.call((self._w, 'lower') + args)
    lower = tag_lower

它覆蓋了降低小部件的Misc類(所有小部件的基本 class)方法.lower 所以我直接調用了Misc class 會調用的內容: self.tk.call('lower', self._w, belowThis)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM