Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterで停止ボタンを使用してループを停止するにはどうすればよいですか?


プロセスをループで実行し、ボタンがクリックされるたびにループを停止する場合を考えてみます。一般に、プログラミング言語では、継続的な停止中 ループ、ブレークを使用します 声明。ただし、Tkinterでは、 whileの代わりに ループ、 after()を使用します 定義された関数をループで実行します。連続ループを解除するには、ループの実行状態を変更するために更新できるグローバルブール変数を使用します。

与えられた例では、

  • フラグと同様に機能するグローバル変数を作成します ループ内。

  • 2つのボタンを定義します。開始 および停止 、実行を開始および停止します。

  • on_start()の2つの関数を定義します およびon_stop() 、ループで更新を配信します。

#必要なライブラリをtkinterからインポートするimport * from tkinter import ttk#tkinterフレームまたはwindowwinのインスタンスを作成する=Tk()#windowwin.geometry( "700x350")running =Trueのサイズを設定する#関数を次のように定義するloopdefにテキストを出力しますprint_text():if running:print( "Hello World")win.after(1000、print_text)#loopdefを開始する関数を定義しますon_start():global running running =True#関数を定義しますloopdef on_stop()を停止します:グローバル実行実行=Falsecanvas =Canvas(win、bg ="skyblue3"、width =600、height =60)canvas.create_text(150、10、text="開始/停止をクリックして実行しますCode "、font =(''、13))canvas.pack()#ループを開始/停止するボタンを追加しますstart =ttk.Button(win、text =" Start "、command =on_start)start.pack(padx =10)stop =ttk.Button(win、text ="Stop"、command =on_stop)stop.pack(padx =10)#windowwin.after(1000、print_text)win.mainloop()<でテキストを印刷する関数を実行します/ pre> 

出力

上記のコードを実行して、特定の条件についてループをテストします。

Tkinterで停止ボタンを使用してループを停止するにはどうすればよいですか?

上記のコードを実行して[スタート]ボタンをクリックすると、[停止]ボタンをクリックして停止できるループに「HelloWorld」テキストが出力されます。

 Hello WorldHello WorldHello WorldHelloWorldHelloWorldProcessが終了コード0で終了しました

  1. Tkinterで画像をボタンとして使用するにはどうすればよいですか?

    この例では、フォーム、ゲーム、ダイアログボックスなど、他の多くのアプリケーションで使用できる丸いボタンをウィンドウに作成します。 Tkinterで丸みを帯びたボタンを作成する最良の方法は、ボタンの目的の画像を使用して、フレーム内でクリック可能なボタンに変えることです。これは、 PhotoImage()を使用することで実際に可能になります ボタンの目的の画像を取得する機能。 したがって、次の手順で目的の画像をボタンにします まず、画像をクリック可能にするために使用できるダミーボタンを作成します。 PhotoImage(file)関数を使用してソースから画像を取得します。 B

  2. Tkinterでボタンテキストのサイズを動的に変更するにはどうすればよいですか?

    TkinterFrameでボタンとラベルを作成したとしましょう。タスクは、ボタンのテキストをメインウィンドウに動的にサイズ変更できるようにすることです。 ボタンウィジェットを使用してボタンを作成できます 。ただし、ボタンラベルを動的に作成するために使用される関数は他にもいくつかあります。 この例では、いくつかのラベルが含まれる2つのボタンを作成します。 グリッド方式を使用する rowconfigure()など およびcolumnconfigure() 、メインウィンドウまたはルートのサイズを動的に変更します。 ボタンのテキストを動的にするために、 bind(、command)を使用します