基本的な考え方:アレイ内に格納された各フレーム画像アニメーション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 ")