2016-04-30 80 views
0

我有一個帶有一些打包框架的tk窗口,我想要一個新面板從窗口底部向上滑動(並在離開屏幕時做相反的動作)。這是我使用,使該面板在預定位置靜態顯示的代碼(其放置在相對的位置,以self.statusframe被包裝在窗口底部):在Python 3(tkinter)中,是否可以對框架進行動畫處理?

self.bottomframe.place(in_=self.statusframe, relx=1, y=0, anchor="se", relwidth=1, bordermode="outside") 
self.bottomframe.lift() 

有一種簡單的方法來動畫放置tkinter框架,以便它似乎是滑動到預期的位置?

+0

你可以使用tkinter動畫的標準模式(使用'after'),在每次迭代時用'place'修改座標。 –

+0

你的意思是這樣嗎? y在範圍內(-100,1): self.bottomframe.place(in_ = self.statusframe,relx = 1,y = y,anchor =「se」,relwidth = 1,bordermode =「outside」) self.bottomframe.after(100)' –

+0

好的。我想我明白了。我對它做了一些經驗,把範圍調整到'範圍(-9,1,3)'並將'y = y'改爲'y = -y'。現在它來自期望的方向進入所需的位置。但是,我沒有使用'after',因爲我無法弄清楚它是如何工作的。動畫僅在屏幕上出現,我在'for'循環中添加了'.update()'。但是,至少在我的系統中,速度非常慢,這就是爲什麼我將動畫縮小到幾幀。有什麼辦法可以讓它更快地畫和動畫? –

回答

0

只是爲了發佈一個可能對那些遇到這個問題的人有用的更新,在閱讀Bryan Oakley的評論和挖掘一點之後,在這種情況下,我結束了使用這段代碼,我相信做了我的意圖:

for y in range(-10,1,2): 
    self.bottomframe.update() 
    self.bottomframe.place(in_=self.statusframe, relx=1, y=y**2, anchor="se", relwidth=1, bordermode="outside") 
相關問題