В настоящее время я пишу небольшой скрипт на Python для моего коллеги, который должен дать основу для его задачи защиты PhD, например, небольшие задания и вопросы, на которые он должен ответить.Сам сценарий должен помочь ему пройти через его испытания и дать эти задания, введения и т. Д.
В настоящее время я использую Tkinter для этой цели.В принципе, я хочу иметь холст / часть экрана, где всплывают текст и вступления, как в примере, показанном ниже.
import Tkinter as tk
import time
global_delay =150
counter = 0
delay = global_delay
def display_text():
global num_letters
global global_text
global label
text = global_text[counter]
num_letters = len(text) - 1
old_text = label.cget("text")+'\n'
def display():
global num_letters
global counter
global global_delay
global delay
if delay == 0:
user_text = ''
com_text = ' '
else:
user_text = 'user@hlrdbb4 ~ '
com_text = ''
print_text = old_text + user_text + str(text[1:len(text) - num_letters])+(num_letters+50-len(text))*' ' + com_text
label.config(text=print_text)
label.config(font=("Courier", 30))
num_letters-=1
if num_letters>=0:
label.after(delay, display)
elif counter<len(global_text)-1:
counter += 1
if global_text[counter][0] == 'o':
delay = 0
if global_text[counter][0] == 'i':
delay = global_delay
label.after(global_delay*10, display_text)
display()
root = tk.Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))
root.title("PhD")
label = tk.Label(root, fg="green", bg='black', height=h, width=w, anchor=tk.NW)
label.pack()
global_text=['icd E:\dbb\ ','oChange directory to E:\dbb\ ','iget_PhD.exe','oError file not found','iget_PhD.exe','oError file not found','iget_PhD.exe','oExecuting get_PhD.exe','oHere are your introductions...']
display_text()
root.mainloop()
На другой стороне графического интерфейса должны отображаться соответствующие мини-игры, например,динамически изменяющийся шумовой график, для которого он должен поставить несколько цифр, чтобы увидеть приличный сигнал.Как вы можете видеть, в настоящее время я использую метод after для отображения текста, но я не могу понять, как включить такие игры или как скрипт может ожидать продолжения ввода с клавиатуры.
Может ли кто-нибудь помочь мне здесь немного?