如何在PyQt中嵌入命令外壳

时间:2019-12-11 16:25:54

标签: python windows command-line pyqt

我想在Python的Qt小部件中嵌入Windows命令行解释器。

我使用从控制台的窗口ID创建窗口容器的功能,这一部分运行良好。

我的问题是启动控制台的方式:我试图通过使用运行时构建脚本(runme.cmd)或使用直接命令行来启动控制台,我试图通过使用os.system或子进程来启动此控制台。 .Popen,但是当我成功将控制台嵌入到我的小部件中时,它不会响应键盘输入。尽管如此,复制和粘贴仍可以很好地在此控制台中运行,并且我能够粘贴命令并运行它们。

这是我使用的代码:

with open("runme.cmd", "w") as f: 
            f.write("start /wait c:\\Windows\\system32\\cmd.exe /k") 
exePath = "runme.cmd"
# exePath = "C:\\Windows\\system32\\cmd.exe /k"
# os.system("start /wait cmd")
subprocess.Popen(exePath, stdin=PIPE, stdout=PIPE, stderr=PIPE)
# os.system(exePath)
# subprocess.run(exePath, stdin=PIPE)
time.sleep(0.5)
hwnd = win32gui.FindWindow("ConsoleWindowClass", None)
print("hWnd = %d" % hwnd)
widget = self.createWindowContainer(QWindow.fromWinId(hwnd), self)
vLayout = QVBoxLayout(self)
vLayout.addWidget(widget)

欢迎任何帮助。

0 个答案:

没有答案