나는 내부에 QProcess
을 생성하는 GUI 응용 프로그램을 가지고 있으며 출력을 포착하여 양식에 표시합니다. 나는 어떻게 든 그것들을 QProcess
으로 전달하기 위해 양식에서 키 이벤트를 잡아야한다 (가능한 한 실제 터미널 창에 가깝게 만들기 위해).keyboad 이벤트를 QProcess에 투명하게 전달하는 권장 방법은 무엇입니까?
그래서, 나는 (char*
또는 QByteArray
소요되는) process.write()
에 적합, 내가 인수 (int
인) (QString
인) 또는 event.key()
중 하나 event.text()
변환 어떻게 든 keyReleaseEvent()
를 처리해야하고, 가정합니다. 그러한 변환을 수행하는 몇 가지 권장 방법이 있습니까? (현지화 문제, ctrl/alt/shift 수정 자 등을 고려해야합니다.) 나는 실제로 어떤 종류의 매핑을 구성하고 싶지 않다. key()
반환 값은 char*
strings이다. text()
수식어를 삭제합니다.
또한 내가 QProcess에서 명령 bash -c sudo something
와 프로세스를 시작하는 경우, 그것은 "더 청각 장애의 존재없이 askpass 프로그램이 지정되지"불평, 즉시 종료, 그래서 나는
주요 문제에 대한 답변이 없으므로 댓글을 달아주세요. "no tty ..."문제를 해결하기 위해 QProcess :: setEnvironment (http://doc.trolltech.com/4.6/qprocess.html#setEnvironment)를 사용하여 SUDO_ASKPASS 환경 변수를 설정할 수 있습니다. 인수 (프롬프트)를 취하고 암호를 표준 출력에 기록하는 프로그램 실행 경로로 설정해야합니다. – imaginaryboy
각 지나치게 편집 성있는 프로그램에 대해 몇 가지 난해한 변수를 설정하는 것을 선호하지 않습니다 ... QProcess가 터미널 응용 프로그램과 똑같이 작동하도록하는 일반적인 방법이 있기를 바랍니다. – fjarri