首页 > 解决方案 > 如何在 PyQt5 中显示子进程输出?

问题描述

def on3_click(self):
    subprocess.call('ip a',shell=True)

你好,所以这个clicked.connect指针允许我使用ip a命令打印出我的桌面 IP 地址,但它只会在终端中打印出来。如何在 QMessageBox 或其他 GUI 窗口中显示子进程的输出?

标签: ubuntusubprocesspyqt5

解决方案


您可以将子进程调用的输出收集为字符串,然后打开一个 QMessageBox。

class Template(QWidget):

    def __init__(self):
        super().__init__()
        btn = QPushButton('Button', self)
        btn.clicked.connect(self.on3_click)

    def on3_click(self):
        ip = str(subprocess.call('ip a', shell=True))
        QMessageBox.information(self, 'Info', ip)

推荐阅读