2016-03-31 55 views
1

tkinter私のtkinterアプリケーションに「サイドウィンドウ」を作成し、リストを表示して自動的にその下にスクロールすることを計画しています。Python Tkinter動的自動スクロールでリストを表示

目的は、聴衆のために巨大な画面にウィンドウが表示され、リストの各要素が競技の参加者のスコアであることです。

それでは、私が達成したいことは、たとえば次のとおりです。

ウィンドウがポップアップし、ゆっくりと、第2から第六の参加者に示して下に移動し、そうでないよりも、最初の5の参加者とそのスコアを示し

setスクロールバーのオプションを検索しましたが、何も見つかりませんでしたが、listboxyviewオプションが見つかりました。しかし、私がlistboxを循環しようとし、そのyviewをセットしてから1秒間スリープすると、正しい要素が表示されず、実際には全期間待ってから最後の要素にジャンプします。

テストコード私はこのような外観を使用:

from tkinter import * 
from time import sleep 

def a(): 
    for i in range(1000): 
     listbox.yview(i) 
     sleep(1) 

master = Tk() 

scrollbar = Scrollbar(master) 
scrollbar.pack(side=RIGHT, fill=Y) 

listbox = Listbox(master, yscrollcommand=scrollbar.set) 
for i in range(1000): 
    listbox.insert(END, str(i)) 
listbox.pack(side=LEFT, fill=BOTH) 

scrollbar.config(command=listbox.yview) 
Button(master,text="start",command=a).pack() 

mainloop() 

はこのような何かを作るための良い方法はありますか?各スリープサイクル後にリスト内の実際の位置を表示するようにコードを修正する方法はありますか?

答えて

0

解決策は見つかりましたが、それほどエレガントではありません。

各睡眠後にI master.update()が動作する場合は、動作します。

関連する問題