Реализация функции для ожидания ввода пользователя в существующий код - PullRequest
0 голосов
/ 20 марта 2019

В настоящее время я расширяю функциональность существующей программы.Предполагается, что мое дополнение останавливает основную функцию программы, когда обнаружена ошибка, позволяющая пользователю исправить ошибку и затем продолжить основную функцию.

Проблема, с которой я столкнулся сейчас, заключается в том, что я не знаюКак я могу реализовать «функцию ожидания», чтобы остановить основную функцию, пока пользователь не введет через tkinter.Кроме того, я хочу спросить, есть ли альтернатива mainloop (), например, обновлять пользовательский интерфейс только один раз в каждом цикле основной функции

Я инженер и не программист, так что извините за грязный код и отсутствиеправильная терминология.

До сих пор моя реализация:

В основной функции:

if Total_Errors != 0:

  os.startfile(root)
  Error_Window(root)

За пределами основной функции:

def Error_Window(root):

  import tkinter

  ErrorWindow = tkinter.Tk()
  ErrorWindow.title("Error found")
  ErrorWindow.resizable(0,0)
  tkinter.Label(ErrorWindow, text="Error fount at:").pack(padx=10, pady=0)
  tkinter.Label(ErrorWindow, text=root,).pack(padx=10, pady=0)
  tkinter.Button(ErrorWindow, text="Ignore", command=PlaceHolder).pack(padx=10, pady=10)
  tkinter.Button(ErrorWindow, text="Continue", command=PlaceHolder).pack(padx=10, pady=10) 
  ErrorWindow.mainloop()

Пожалуйста, сделайтедать конструктивную критику о том, как мой вопрос может быть улучшен.

1 Ответ

0 голосов
/ 21 марта 2019

С помощью метода .wait_window с использованием Диалоговое окно Windows , предложенного @stovfl, я смог решить мою проблему:

Я реализовал "ErrorWindow" в основную функцию цикла с фрагментом кода, похожим на это:

if Total_Errors != 0:

    ErrorWindow = tkinter.Toplevel(Window)
    ErrorWindow.title("Error")
    ErrorWindow.minsize(width=250, height=250)
    ErrorWindow.resizable(0,0)

    tkinter.Label(ErrorWindow, text="Error found at:").pack()
    tkinter.Label(ErrorWindow, text=root).pack()

    tkinter.Button(ErrorWindow,text="Continue", command=ErrorWindow.destroy).pack()

    os.startfile(root)
    Window.wait_window(ErrorWindow)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...