파이썬과 PyGObject로 간단한 프로그램을 작성합니다. 나는 그녀에게 ProgressBar를 통한 진행 상황을 사용자에게 알려주기를 바랍니다. 인터페이스가 보유하지 않을 때, 나는 기회 사용자를주고 싶습니다조치의 폐지를 구현하는 방법은 무엇입니까?
import time
import threading
from gi.repository import Gtk, GObject
GObject.threads_init()
def tread_function():
progress.set_fraction(0)
time.sleep(5)
progress.set_fraction(0.25)
time.sleep(5)
progress.set_fraction(0.5)
time.sleep(5)
progress.set_fraction(0.75)
time.sleep(5)
progress.set_fraction(1)
def clickOk(*args):
t = threading.Thread(target=tread_function)
t.start()
def clickCancel(*args):
pass
buttonOk = Gtk.Button("Start Count")
buttonOk.connect("clicked", clickOk)
buttonCancel = Gtk.Button("Cancel Count")
buttonCancel.connect("clicked", clickCancel)
progress = Gtk.ProgressBar()
progress.set_show_text(True)
vBox = Gtk.VBox()
vBox.pack_start(buttonOk, True, True, 10)
vBox.pack_start(buttonCancel, True, True, 10)
vBox.pack_start(progress, True, True, 10)
window = Gtk.Window()
window.connect('destroy', Gtk.main_quit)
window.add(vBox)
window.show_all()
Gtk.main()
을 지금 :이 프로세스는 달리 인터페이스가 테스트를 위해이 같은 몇 가지를 지금 유지하고, 별도의 스레드가 될 것을 봤 그가 설정에서 실수를했다면 작업을 완전히 끝내기 위해서입니다. 그러나 나는 끈기있게 찾지 못한다. 또는 완전한 실행 전에 쓰레드를 죽이는 방법을 문서에서 찾아 낼 수는 없다.
"행동의 폐지"란 무엇을 의미합니까? 스레드를 중단 하시겠습니까? 나는 "폐지"라는 단어가 당신이 그것을 사용하려는 방식으로 작동한다고 생각하지 않습니다. – user2357112
예, 중단되었습니다. 미안 영어가 제 모국어가 아닙니다. – Atterratio
'sleep (5)'는 장시간 실행되는 함수/동작을 의미합니다. 맞습니까? – drahnr