代码如下
from PyQt5.QtCore import QProcess
from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, QLineEdit, QTextEdit, QPushButton
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建 UI
layout = QVBoxLayout()
self.command_line_edit = QLineEdit()
self.output_text_edit = QTextEdit()
self.exec_button = QPushButton("Execute")
layout.addWidget(self.command_line_edit)
layout.addWidget(self.exec_button)
layout.addWidget(self.output_text_edit)
self.setLayout(layout)
# 绑定信号槽
self.exec_button.clicked.connect(self.execute_command)
def execute_command(self):
command = self.command_line_edit.text()
process = QProcess()
process.start("cmd /C " + command)
process.waitForStarted()
while process.state() == QProcess.Running:
process.waitForReadyRead()
output = process.readAllStandardOutput().data().decode('utf-8')
self.output_text_edit.append(output.rstrip('\r\n'))
process.close()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
这个示例包含了一个带有命令输入框、按钮和输出文本框的窗口,用户可以在命令输入框中输入需要执行的命令,然后点击按钮来执行命令并输出结果。
这个示例使用了 PyQt5 中的 QProcess
类来执行命令和读取输出结果。我们通过调用 start()
方法来启动 cmd 进程并传入需要执行的命令作为参数,然后使用一个循环来等待命令执行完成并读取输出结果。在每次读取到输出结果时,我们使用 output_text_edit.append()
方法将输出结果添加到输出文本框中。最后,我们调用 close()
方法来关闭进程。