Почему первым проверяются системные файлы, а не индикатор выполнения - PullRequest
0 голосов
/ 29 декабря 2018

Проблема

Когда я запускаю программу, у меня запускается sfc / scannow, и индикатор выполнения не отображается, но только программа зависает, пока sfc scannow не завершит свою работу.

Image - https://imgur.com/a/tVG8Qoz

Я пытался поменять их местами, но не работает

Функция sfcScannow

def sfcScannow (событие):

sfcWindow = Toplevel()
sfcWindow.title("Сканирование системы")
sfcWindow.minsize(350,480)
sfcWindow.maxsize(350,480)
sfcWindow['bg'] = '#fff2fe'

pb = ttk.Progressbar(sfcWindow, length=300, mode ="indeterminate")
msg = Label(sfcWindow, width=30, height=4, fg="#691962", relief="ridge", font="Intro 15", text="Начато сканирование")
msg2 = Label(sfcWindow, width=30, height=3, fg="#691962", relief="ridge", font="Intro 13", text="About UsefulTech.")
msg3 = Button(sfcWindow, width=30, height=3, fg="#691962", relief="ridge", font="Intro 16", text="Информация")

def InformSFC(event):
    mb.askyesno(title="Информация", message="Данная функция отвечает за проверку системных файлов, используя функцию Windows 'sfc /scannow'. Процесс может занимать более 20 минут и шкала процесса, не точно расчитана. Лучше ждать > 30 минут")

msg3.bind("<Button-1>", InformSFC)

msg.pack()
msg2.pack()
msg3.pack()
pb.pack(side="bottom")
pb.start()
os.system("sfc /scannow")

Во время теста должен работать индикатор выполнения, а после завершения теста останавливаться

1 Ответ

0 голосов
/ 29 декабря 2018

Ответ

def sfcscannow():
        os.system("sfc /scannow")
    def prb():
        pb.pack(side="bottom")
        pb.start()  
    def StartScan(event):
        mb.askyesno(title="Информация", message="Проверка начата")
        t1 = threading.Thread(target=prb)
        t2 = threading.Thread(target=sfcscannow)
        t1.start()
        t2.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...