Я хотел бы знать, как получить пользовательский ввод в python без использования командной строки или поля ввода.Позволь мне объяснить.Я не хочу делать это
#All code is python 3
name=input("What is your name?")
Почему?При запуске сценариев командная строка не фокусируется автоматически.Кроме того, он открывает другое окно, чего я не хочу, потому что я не могу нажать escape, чтобы закрыть его в спешке (что-то, что вы, возможно, захотите сделать, если играете в игру).
Чтоя пробовал?Я посмотрел на WX, и это диалоговая функция, что-то вроде этого:
import wx
app=wx.App()
def text_entry(title,message):
result=None
dlg=wx.TextEntryDialog(None, message,title)
if dlg.ShowModal()==wx.ID_OK: result=dlg.GetValue()
dlg.Destroy()
return result
text_entry("Text entry","Enter something here")
Пока это работает, всплывает другое окно, которое снова, я не хочу.Тем не менее, это ближе к тому, что я в конечном итоге ищу, потому что я могу нажать escape, чтобы заставить его уйти.
Я пытался использовать pygame, и это key.get_pressed()
функция, но он вставляет много того жеписьмо в запись, даже если я слегка коснусь ключа.Кроме того, когда я внедрил его в проект, он мог подбирать только обычные буквы.Написание 26 операторов if для обнаружения нажатия клавиши для одного письма с клавишей Shift или без нее кажется немного противоречивым.Наконец, я немного не решаюсь попробовать tkinter.Я оказался слепым, и из того, что я прочитал, tk очень наглядно, поэтому я обеспокоен тем, что он не будет хорошо работать с моей программой чтения с экрана (NVDA).
Итак, я здесь.После поиска в Google «получения ввода без использования командной строки в Python 3», «ввода в том же окне» и «ввода без использования input ()» ничего не дали.
Напомним, я хочу принятьпользовательский ввод без использования функции input () и без каких-либо дополнительных окон, появляющихся на протяжении всего времени, которое я выполняю.Спасибо.