2017-04-21 1 views
0

私のキャンバスには4つのアイテムがあります(canvas12)。私は2つのドラッグボタン(frame1_drag/frame2_drag)をウィンドウの前に配置しようとしています(frame2can/frame1can)。しかし、私はtag_raise()やlift()に何かをさせることはできません。今すぐドラッグボタンがウィンドウの後ろについています。ドラッグボタンはcanvas12内のそれぞれのframexcanウィンドウをアニメーション化するので、そうです。Tkinterはキャンバス内のアイテムを持ち上げることができません

frame2can = canvas12.create_window(0, 0, anchor='nw', width=sf(768), height=sf(fr1h),window=frame2) 
frame1can = canvas12.create_window(0, sf(fr1h), anchor='nw', width=sf(768), height=sf(fr1h),window=frame1) 

# Drag Buttons 
frame1_drag = canvas12.create_rectangle(0, 0, sf(fr0h), sf(fr0h), outline="blue", fill="green", tags="token") 
frame2_drag = canvas12.create_rectangle(0, sf(fr1h), sf(fr0h), sf(fr0h+fr1h), outline="blue", fill="green", tags="token") 

canvas12.tag_raise(frame1_drag) 
canvas12.tag_raise(frame2_drag) 

答えて

0

ウィンドウオブジェクトの上に描画アイテムを配置することはできません。

公式TKのドキュメントから:

キャンバス内のアイテムが、リスト内の次の項目に続いて、最初に表示されている表示リスト内の最初の項目で、表示の目的のために注文されており、そうです。表示リストの後の項目は、表示リストの早いものを不明瞭にし、以前の項目の「上に」表示されることがあります。新しい項目が作成されると、その項目は表示リストの最後に配置されます。ウィジェットコマンドを使用して、表示リストの順序を並べ替えることができます。

ウィンドウ項目は、上記の規則の例外です。基礎となるウィンドウシステムでは、常に他のアイテムの上に描画する必要があります。さらに、ウィンドウ項目の積み重ね順序は、キャンバスウィジェットコマンドのいずれによっても影響を受けません。代わりにraiseとlowerのTkコマンドを使用する必要があります。

関連する問題