妹のGIFアニメーションを使用Tkinterの表示は---プログラムのPythonのTkinterのチュートリアルパッケージの学習を達成シャットダウンする余裕はありません

基本的な考え方:アレイ内に格納された各フレーム画像アニメーションGIFマップは、次に、ループ継続的に更新ピクチャ()メソッドを呼び出した後

コードは、(前述のフォロー---妹オフTkinterにはPython学習プログラムを実施する余裕がないチュートリアルパックコード)を、このコードを理解することができ、その後、次のコードはよく理解され、それが1回の以上である(更新) ()関数を常に更新絵の後に呼ばれた機能、

インポートTkinterのASのモジュールをインポートするには、この声明のTkinterのtk#が、便宜上、それは別名TKを定義するため。
OSのインポート
インポートtkinter.messageboxの#messagebox頻繁にプログラミング通常のウィンドウが使用さは、目的は、メッセージボックスを表示することです
へのbase64#をデコードした後の画像データをインポート・コード化され、画像として保存された
私たちは、あなたが来て、これを追加したい画像を削除し、インポートのOS#
 main_w_gifインポートIMG として内部の各画像ファイルIMGが可変であるので、時間のpythonの基本的な使い方であるエイリアスをインポートするために使用することができますので、socket_oneの#次のステップは、あなただけのxxx.pyファイルを作成したファイルをインポートすることです私はこれ以上言うことはありません。
以下からのインポートIMG not_gif AS socket_two
 からインポートIMG sure_gif AS socket_three 
TMP =オープン(' socket_one.gif '' WB '
#これがデコードされます)。名前を付けて保存画像を保存
tmp.write(base64.b64decode(socket_one))

TMP =オープン(' socket_two.gif '' WB ' 
tmp.write(base64.b64decode(socket_two))

TMP =オープン(' socket_three.gif '' WB ' 
tmp.write(base64.b64decode(socket_three))

tmp.close()#は現在、使用します(プログラムにロード後)を実行することができます
「」"
 Pythonは我々のコードは、組み込みのTkinterの、Tkinterのパッケージへのアクセスを呼び出し、 Tkのインターフェース; 

;のTkは、Tcl言語の開発を使用してサポートし、複数のオペレーティングシステムは、というグラフィックスライブラリである

TkのGUIインタフェースは、最終的なGUIを完了するために、ローカルのオペレーティングシステムを呼び出します。

そう、私たちは、インタフェースのTkinterに提供されたコードを呼び出す必要がありますすることができ

、双方向のTkinter、これらの二つは、異なる言い回しです

まず、あなたはTkinterのを追加する必要があるクラス名の使用を増やす必要があり、  
第二は、Tkinterのフルインポートされている、とあなたはそれを使用して、クラスと呼ばれるものを制御するわけではありません。だから、クラス名を追加する必要はありません。



#方法1:
インポートのTkinter 
勝利= Tkinter.Tk()
win.mainloop() 方法2:
から Tkinterのインポート* 
勝利 = Tkの()



"" "
ウィンドウ= tk.Tk() メインウィンドウのサイズ
window.geometry(' 600x500 ' 
#セットメインウィンドウのタイトル
window.title(' caiya ' 

DEF closeWindow():

    tkinter.messagebox.showerror(タイトル = ' さあ'、メッセージ= ' !まだ答えていない' )#エラーメッセージボックスの

    戻り

window.protocol(' WM_DELETE_WINDOW ' 、closeWindow) 
は、テキストを設定しました
Lable1 = tk.Label(ウィンドウ、テキスト= " グレー-グレー-グレー-非-飛ぶ")#、フォント=(" ゴシック"14 
lable2 = tk.Label(ウィンドウ、テキスト= " 私はあなたの実験あなたを聞いていません部屋きれい、かわいい、ほとんどの努力、最も小さなジュニア姉妹見習いの深刻な?")#、フォント=(" ゴシック"34 


numIdx = 6 #GIFフレーム
のフレーム = [tk.PhotoImage(ファイル= " socket_one.gif 'フォーマット= ' GIFは-index I%'%(I))のための =I におけるレンジ(numIdx)] 
imgLabel tk.Label(ウィンドウ)
#のTkinterの管理モジュールのレイアウトを呼び出し
()lable1.packを
lable2.pack()
imgLabel.pack()


numIdx1 = 6 #GIFフレーム
写真1 = [tk.PhotoImage (FILE = ' socket_two.gif '、形式= ' GIF -index Iの%'%(I))のための I における範囲(numIdx1)] 
numIdx2 = 6 #GIFフレーム
写真2 = [tk.PhotoImage(FILE = ' socket_three .GIF 'フォーマット= ' GIF -index%I "%(I))のための I 範囲(numIdx2)]

デフラヴ():
 = tk.Toplevel(ウィンドウ)
    love.geometry(' 380x320 ' 
    love.title(" caiya " 
    lable = tk.Label(愛、テキスト= " 哈哈、我猜就是")#、フォント=(" ゴシック"24 

    imgLabel1 = tk.Label(愛)
    imgLabel1.pack()
    アップデート1(0 、imgLabel1、愛)

    BTN = tk.Button(愛、テキスト= " 完美结束"、幅= 30、高さ= 2 
    btn.config(コマンド = ラムダ:closelove(愛))
    lable.pack()

    love.protocol(' WM_DELETE_WINDOW ' 、CLOSEALL)
    btn.pack()

クリックが動作しないように
DEF NoLove():
    no_love = tk.Toplevel(ウィンドウ)
    no_love.geometry(' 600x350 ' 
    no_love.title(" caiya " 
    Lable = tk.Label(no_love、テキスト= " 自分自身に嘘本当に?")#、フォント=(" ゴシック"24 =

    imgLabel2tk.Label(no_love)
    imgLabel2.pack()


    BTN = tk.Button(no_love、テキスト= " BACK "、幅= 30、高さ= 2 
    btn.config(コマンド = ラムダ:closenolove(no_love))
    lable.pack( )
    btn.pack()
    アップデート2(0 、imgLabel2、no_love) 
子窗口关闭操作
デフCLOSEALL():
    window.destroy()



デフcloselove(愛):
    window.destroy()

デフclosenolove(no_love):
    no_love.destroy( )

#设置按钮
BTN1 = tk.Button(ウィンドウ、テキスト= " "、幅=30、高さ= 2 
#設定]ボタンを
btn1.config(コマンド = 愛)
BTN2 = tk.Button(ウィンドウ、テキスト= " ない"、幅= 30、高さ= 2 
btn2.config(コマンド = NoLove) コールのTkinterレイアウト管理モジュール
btn1.pack()
btn2.pack() 

タイマ機能
DEF更新(IDX):
    フレーム = フレーム[IDX] 
    IDX + = 1。 次のシーケンス番号
    imgLabel.configure(画像 = フレーム)
    ウィンドウ。 (後に100、更新、IDX%numIdx)#200毫秒之后继续执行定时器函数

DEFアップデート1(IDX、imgLabel1、愛):
    フレーム = 写真2 [IDX] 
    IDX + = 1 
    imgLabel1.configure(画像 = フレーム)
    IDX = IDX%numIdx1 
    love.after(200、アップデート1、IDX%numIdx1、imgLabel1、愛)

DEFアップデート2(IDX、imgLabel2、no_love):
    フレーム = 写真1 [IDX] 
    IDX + = 1 
    imgLabel2.configure(画像 = フレーム)
    IDX = IDX%numIdx2 
    no_love.after(200、アップデート2 、IDX%numIdx2、imgLabel2、no_love)
 
更新(0
Window.mainloop()

「」 "
 window.mainloopは、常にリフレッシュ窓を行いますMAINLOOPない場合は、静的ウィンドウで、循環に渡された値があるでしょう、偉大なしばらくの同等のものをメインループサイクル我々はサイクルを持たなければならないので、しばらくはそこで、各クリックは、一度更新される
  Windowsのファイルは、同様のメインループを持っている必要がありますので、
  キーファイルウィンドウにメインループの重要な鍵を。 

「」"
 
os.remove(" socket_one .GIF ' )#削除画像
os.remove(' socket_two.gif ' 
os.remove(' socket_three.gif "

 

おすすめ

転載: www.cnblogs.com/caiya/p/11917372.html