ubuntu - 如何在 PyQt5 中显示子进程输出?
问题描述
def on3_click(self):
subprocess.call('ip a',shell=True)
你好,所以这个clicked.connect
指针允许我使用ip a
命令打印出我的桌面 IP 地址,但它只会在终端中打印出来。如何在 QMessageBox 或其他 GUI 窗口中显示子进程的输出?
解决方案
您可以将子进程调用的输出收集为字符串,然后打开一个 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)
推荐阅读
- c# - 拟合模型中的 Microsoft.ML rel 0.8.0 错误
- ios - 有什么方法可以在后台获取有关 Apple Music 播放的通知?
- rasa-nlu - ImportError:无法导入名称“EndpointConfig”
- python - 缓存 - 烧瓶
- r - ggplot:将新数据添加到现有的分组箱线图中
- c# - 与 SCF 服务集成引发“EndpointNotFoundException”异常
- python - 仅当 Pandas 的某一列中存在某个值时,Groupby 才计数
- google-search-console - 如何将验证 HTML 文件上传到我的 Google 协作平台网站?
- microsoft-translator - 自定义翻译模型隐私
- javascript - 使用 Google Charts API 使图表保持白色