1つの列に2つのボタンとプログレスバーが積み重なったGUIがあります。各ボタンは、実行に時間がかかる異なる関数を呼び出します。誰かが2つのボタンのいずれかをクリックしたときにプログレスバーが移動し、機能が終了して停止するまで(不定に)移動し続けるようにします。マルチスレッドを使用する必要があることは知っていますが、コードを正しく取得できないようです!
コード
from tkinter import Tk
import time
from tkinter import *
from tkinter import Button
from tkinter import Frame
from tkinter import ttk
import threading
def sample_function():
time.sleep(2) # SAMPLE FUNCTION BEING CALLED
def prepare_clicked():
sample_function()
def social_clicked():
sample_function()
def anomaly_clicked():
sample_function()
window = Toplevel() # Tried using Tk but I am using image to design each buttons through the button config in my actual code and tk throws error
topFrame = Frame(window)
topFrame.pack()
prepare_btn = Button(topFrame, command=prepare_clicked,text='Button1')
anomaly_btn = Button(topFrame,command=anomaly_clicked,text='Button2')
social_btn = Button(topFrame, command=social_clicked,text='Button3')
processing_bar = ttk.Progressbar(topFrame, orient='horizontal', mode='indeterminate')
window.rowconfigure((0,1), weight=1) # make buttons stretch when
window.columnconfigure((0,3), weight=1) # when window is resized
prepare_btn.grid(row=0, column=1, columnspan=1, sticky='EWNS')
anomaly_btn.grid(row=1, column=1, columnspan=1, sticky='EWNS')
social_btn.grid(row=2, column=1, columnspan=1, sticky='EWNS')
processing_bar.grid(row=3, column=1, columnspan=1, sticky='EWNS')
window.mainloop()
回答 1 件
関連記事
- この関数がループで実行されていない理由を誰かが知っていますか? 1つのYoutubeビデオのみがレンダリングされています
- 関数が最初の3行を毎回実行しないようにするにはどうすればよいですか?
- jupyter Notebookの実行中にエラーが発生するのはなぜですか?
- クライアント側でサーバー側の機能をどのように実行しますか?
- コードを実行した後、whileループが先頭に戻ります。 'の後に再び開始するようにするにはどうすればよいですか。
- インポート使用中に関数が定義されていないエラー
- エラー:テストの実行時にnullでメンバー関数store()を呼び出す
- forループをwhileループに変更し、この関数でlastindexを使用しないようにするにはどうすればよいですか?
- 新しいアニメーションが実行されている間、最初のアニメーションを実行し続けるにはどうすればよいですか?
- react jsでエフェクト関数を使用すると、正常に動作している間にインポートするように指示されます
関連した質問
- TKINTER Treeview GUIで異なる列の複数の行をカウントして表示するにはどうすればよいですか?
- テキスト、絵文字アイコン、リンクを含むラベルをTkinterで作成するにはどうすればよいですか?
- tkinterのトップレベルウィジェットに入力された値を取得し、それをメインウィンドウで使用して表示するにはどうすればよいですか?
- 電話をかけたときにtkinterメッセージボックスが表示されなかったのはなぜですか?
- tkinterの1つのクラス関数から値を取得する方法
- キーバインドイベントの比較tkinter
- move()メソッドを使用した後に長方形オブジェクトが表示されない:Canvas- Tkinter
- Tkinterttkはカスタムテーマ設定を参照してください
- Comboboxes tkinterpythonの数値を合計します
- 呼び出された関数のチェックボックスのさまざまなインスタンスごとに、Tkinterチェックボックスを含むループを機能させるにはどうすればよいですか?
コードにスレッドを追加しました。機能の進行中はボタンを押したくないと思います。必要ない場合は、
for
を削除してくださいrun_function
のループbtn['state']
を変更する 。また、行と列の構成コードを修正して、ユーザーがウィンドウのサイズを変更したときにウィジェットが拡大/縮小するようにしました。そして、私は邪悪な「スター」インポートを取り除きました。更新
これは、すべての機能を順番に実行する「すべて」ボタンを備えた新しい改良バージョンです。楽しい!