【问题标题】:How to display a subprocess output in PyQt5?如何在 PyQt5 中显示子进程输出?
【发布时间】:2020-03-01 07:52:02
【问题描述】:
def on3_click(self):
    subprocess.call('ip a',shell=True)

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

【问题讨论】:

    标签: ubuntu subprocess pyqt5


    【解决方案1】:

    您可以将子进程调用的输出收集为字符串,然后打开一个 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)
    

    【讨论】:

    • 哇,谢谢你的工作,结果证明我的语法在某种程度上是颠倒的。无论如何有没有办法调整 QMessageBox 的大小?
    • 看看这篇文章,它有一个很好的答案。 stackoverflow.com/questions/37668820/…
    猜你喜欢
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多