PyQt5执行shell

2023-11-04

代码如下

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() 方法来关闭进程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt5执行shell 的相关文章

随机推荐

  • 编写ros2与webots进行联合仿真的代码,用Python写

    在写ROS2与Webots的联合仿真代码时 您可以使用Python作为编程语言 下面是一些提示 以帮助您开始编写代码 安装ROS2和Webots 您需要安装ROS2和Webots 并确保它们能够正常运行 创建ROS2工作空间 使用ROS2
  • L - Candy Machine

    SDUT 2022 Spring Team Contest for 21 12 Virtual Judge JB loves candy very much One day he finds a candy machine with NN
  • SQLException之驱动版本不匹配

    java sql SQLException Unknown initial character set index 255 received from server Initial client character set can be f
  • docker安装fastdfs

    一 准备docker环境 二 搜索fastdfs镜像 三 拉取镜像 docker pull delron fastdfs 选取delron fastdfs镜像的原因是包含了nginx不用自己安装nginx转发 也可以选择qbanxiaoli
  • c++ this指针

    this指针是c 中的一个关键字 它在类中被自动隐藏了起来 this指针指向当前对象并且只能用在类的内部使用 通过this指针我们可以访问类中的所有成员 public protect private class A public void
  • IDEA过期重置

    过期重置 https blog csdn net zzztimes article details 117550423
  • win10电脑发现不了华为share_huaweishare打开 电脑找不到手机

    本帖最后由 lang dine 于 2020 1 26 22 37 编辑 我的笔记本不是华为笔记本其他的网络设备都能搜索到 唯独huawei手机搜索不到 无法被搜到应该是huawei share的问题 这个问题还能顺延出两个故障 win10
  • 方波参考测试信号PI控制调试

    要调试方波参考测试信号的PI控制 可以按照以下步骤进行操作 确保系统已经正确连接 并且您已经设置了方波参考测试信号的频率和幅值 配置PI控制器 根据您的控制系统要求 选择适当的PI控制器参数 例如比例增益 Kp 和积分时间 Ki 这些参数可
  • c++虚函数和纯虚函数的区别

    关于虚函数的定义是 被virtual关键字修饰的成员函数 关于纯虚函数的定义是 是一种特殊的虚函数 在许多情况下 在基类中不能对虚函数给出有意义的实现 把它声明为纯虚函数 它的实现留给该基类的派生类去做 这是是纯虚函数 虚函数的简单实例 定
  • Android9以后遇到的一些问题

    Android9以后不能使用外存 我遇到这个问题的时候没报错 但就是无法成功创建文件 报了找不到文件异常才发现问题 application的属性中添加一条属性 请求使用遗留外存 android requestLegacyExternalSt
  • pm ux ui_ui与ux回顾2020年前端设计方面与重要性之间的差异

    pm ux ui Why Because people use the terms UI and UX so interchangeably that I believe it is about time someone talks abo
  • 【C++】 函数返回vector

    当程序中要返回vector时 一般做法会将函数直接定义为 vector
  • Qt tabwidget中插入widget

    一 简单介绍 QT gt tabWidget 标签页面 在ui中通过工具栏自定义拉取控件 其中tabwidget可以可以创建多个标签页面 默认生成两个tab widget tab 1 tab 2 并且可以在ui中右键自由添加控制删除等标签页
  • 头歌python实训通关四——分支结构

    第1关 英制单位英寸与公制单位厘米互换 任务描述 本关任务 编写一个能实现单位英寸与公制单位厘米的互换的函数 相关知识 为了完成本关任务 你需要掌握 1 if条件语句 编程要求 根据提示 在右侧编辑器补充代码 实现单位英寸与公制单位厘米互换
  • 关于 private static final long serialVersionUID = 1L

    实现java io Serializable这个接口是为序列化 serialVersionUID 用来表明实现序列化类的不同版本间的兼容性 如果你修改了此类 要修改此值 否则以前用老版本的类序列化的类恢复时会出错 实现后如果你用的是工具的话
  • Java内省机制

    Wiki上的解释 在计算机科学中 内省是指计算机程序在运行时 Run time 检查对象 Object 类型的一种能力 通常也可以称作运行时类型检查 不应该将内省和反射混淆 相对于内省 反射更进一步 是指计算机程序在运行时 Run time
  • Log4Net(Logging for DotNet)学习笔记

    系统支持 SystemFramework 提供系统的框架支持 典型的 如异常 日志等 也有现成的 比如log4net 突然一种老朋友似的感觉涌上心头 这不是我一直想要得到的吗 一直想在的我系统加入的东西吗 日志系统 嘿嘿 高兴啊 本文从一个
  • 开源数据库对比 H2, HSQLDB, DERBY, PostgreSQL, MySQL

    H2 HSQLDB DERBY PostgreSQL MySQL
  • 接口复习总结

    第一章微型计算机系统概述 1 计算机硬件系统 运算器 控制器 存储器 输入和输出设备 2 接口的功能 I O端口编址方式 统一编址和独立编址 CPU与接口数据交换技术 无条件方式 控制简单 无需额外的硬件支出 CPU和外设之间只能串行工作
  • PyQt5执行shell

    代码如下 from PyQt5 QtCore import QProcess from PyQt5 QtWidgets import QWidget QApplication QVBoxLayout QLineEdit QTextEdit