我有一个 GUI 应用程序,它创建一个QProcess
内部,捕获它的输出并将其显示在一个表单上。我需要以某种方式从表单中捕获关键事件以将它们传递给QProcess
(以使其尽可能接近真实的终端窗口)。
所以,我想,我应该处理keyReleaseEvent()
并以某种方式将event.text()
(which is QString
) 或event.key()
(which is int
) 转换为适用于process.write()
(which take char*
or QByteArray
) 的参数。是否有一些推荐的方法来进行这种转换(考虑到本地化问题、ctrl/alt/shift 修饰符等)?我真的不想构建某种从key()
返回值到char*
字符串的映射;并text()
掉落修饰符。
此外,如果我bash -c sudo something
在 QProcess 中使用命令启动进程,它会立即退出,并抱怨“没有 tty 存在并且没有指定 askpass 程序”,所以我可能做错了什么......