ユーザーがキャンバスに配置できる適切な量のウィジェットを削除するには、キャンバスにフレームを作成する必要があります。代わりにフレームに配置されるので、canvas.delete( "all")で削除できます。フレームは線を受け入れないので、いくつかの線も必要です。下のキャンバスに直接作成する必要があります。問題は、フレームが線と重なっていることです。メソッドcanvas.lift()とtag.raise()を試しましたが、機能しません。それを修正する方法はありますか?
from tkinter import *
root = Tk()
root.geometry('1560x750')
canvas_right=Canvas(root)
canvas_right.config(width=1000, height=1560, bg='light grey')
canvas_right.grid(row=1,column=3, rowspan=1550,ipadx=1300,ipady=750,sticky=NW)
frame = Frame(canvas_right, bg='light blue')
main_frame = canvas_right.create_window(500, 780, height=1700, width=760, window=frame)
line1 = canvas_right.create_line(100,100,3000,1000)
canvas_right.lift(line1)
root.mainloop()
キャンバスに配置されたウィジェットは、常に線や円などの他のグラフィックアイテムの上に配置されます。その制限を回避する方法はありません。
注:ウィンドウの管理方法に制限があるため、ウィンドウアイテムの上に他のグラフィックアイテム(線や画像など)を描画することはできません。ウィンドウアイテムは、ディスプレイリストでの順序に関係なく、重なるグラフィックを常に覆い隠します。また、ウィンドウアイテムは、他のキャンバスアイテムとは異なり、含まれているキャンバスの境界線によって表示用にクリップされるのではなく、windowオプションで指定されたウィンドウの親ウィジェットによってクリップされることに注意してください。親ウィジェットがキャンバスの場合、これはウィンドウアイテムがキャンバスの境界線と重なる可能性があることを意味します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加