GUI 위젯의 stdin과 key_events에 대해 상당히 혼란 스럽습니다.GUI 위젯과 표준의 key_events
보통 내 생각에 stdin은 프로세스의 키보드 입력을 얻는 일반적인 방법이라고 생각했습니다. 예 : 프로세스가있는 경우 stdin을 사용하여 키보드 입력을 사용할 수 있습니다. 그리고 이것은 일반적으로 키보드 입력을 얻기 위해 서브 프로세스에 대한 I/O 방향을 만드는데 사용됩니다. 예를 들어 하위 프로세스를 만들 수 있습니다 .Popen (stdin = PIPE)
반면 GUI에서는 입력과 같은 주요 이벤트를 잡기 위해 wx.TexCtrl 또는 py.Shell.shell을 사용하고 있습니다.
GUI 나 pyShell이 실행 중일 때 키보드를 통해 타이핑 할 때 표준 입력 또는 GUI 키 이벤트 캐칭 시스템을 통해 여기에 대해 매우 혼란 스럽습니다. GUI 키 이벤트 시스템을 통해 키보드를 어떻게 가져올 수 있습니까? 일반적인 GUI가 아닌 프로그래밍으로 키보드 입력을 내 자식 프로세스 (GUI 내부)로 리디렉션 할 수 있습니까?
의견을 보내 주셔서 감사합니다.
브라이언, 답변 해 주셔서 대단히 감사합니다. 나는 당신의 대답을 먼저 클릭한다. 답을 바탕으로 한 몇 가지 질문. sys.stdin이 여전히 존재한다면, GUI 프로그램, 파일 또는 키보드를 통해 입력 할 수 있습니까? bash에서 파이썬으로 wxPython GUI를 시작한다면, bash 윈도우에서 sys.stdin입니까? 또한, 당신이 설명한대로 GUI에 대한 sys.stdin 사용법이없는 것 같습니다. 그러나 sys.stdout은 때때로 textctrl 위젯에 정보를 출력하는 데 유용 할 수 있습니다. 그래서 pyCrust 나 GUI 기반 쉘은 sys.stdin을 사용하지 않고 sys.stdout만을 사용했습니다. 맞습니까? – pepero
@pepero : 아니요, 키보드를 통해 stdin에 입력 할 수는 없지만 적절한 양의 코딩으로''echo hello ''와 같이 gui에 일부 데이터를 파이프 할 수 있습니다. mygui'. 비록 그것이 가치가있을만한 유스 케이스는 생각할 수 없다. –
파이프를 통과하는 데이터의 GUI 뷰어를 삽입하는 것이 하나의 유스 케이스라고 생각합니다. 특히 사소한 파이프 체인에서. 입력 스트림이 높은 경우 스레딩이 적절할 수 있습니다. GUI API는 일반적으로 비동기 이벤트 핸들러로 설계되었으므로 즉, UI 업데이트가 빠르게 버퍼링 될 수 있습니다. – DevPlayer