PyQt5 - 如何将 Windows 命令结果插入 qlabel [重复]
Posted
技术标签:
【中文标题】PyQt5 - 如何将 Windows 命令结果插入 qlabel [重复]【英文标题】:PyQt5 - How to insert windows command result into qlabel [duplicate] 【发布时间】:2021-03-25 10:09:53 【问题描述】:我是第一次学习PyQt5,我对qlabel感到困惑 windows 10 cmd "wmic cpu get name" 将返回当前 CPU 名称。 (例如:名称 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz) 我想把这个结果放入 qlabel。 哪些公共功能或插槽适合此结果? 谢谢
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import xxxx_UI as ui
import subprocess,os,sys
class Main(QMainWindow, ui.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.Exit_BTN.clicked.connect(self.buttonClicked)
Processor_content=os.system("wmic cpu get name")
self.processor_content.settext(self.processor_content)
def buttonClicked(self):
window.destroy()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec_())
【问题讨论】:
应该是self.processor_content.setText(Processor_content)
这能回答你的问题吗? Running shell command and capturing the output
不要使用 os.system() 因为它不返回结果,在副本中它指示如何在 python 中获取命令的输出
【参考方案1】:
os.system()
不会返回实际输出,它会将其发送到解释器的控制台。
>>Processor_content=os.system("wmic cpu get name")
如果你想把输出变成一个变量,你应该使用subprocess.check_output()
您可以执行以下操作:
>>Processor_content = subprocess.check_output("wmic cpu get name")
但它会为您提供字节字符串,您可以在以下输出中看到:
>>Processor_content
b'Name \r\r\nIntel(R) Core(TM) i5-6200U CPU @ 2.30GHz \r\r\n\r\r\n'
因为它是一个字节串,你可能想解码它:
>>Processor_content.decode('ascii')
'Name \r\r\nIntel(R) Core(TM) i5-6200U CPU @ 2.30GHz \r\r\n\r\r\n'
如果你愿意,可以稍微处理一下这个字符串,让它看起来更好,像这样:
>>Processor_content = Processor_content.decode('ascii').replace('Name', '').strip()
>>Processor_content
'Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz'
现在终于可以使用这个字符串显示在Qt
:
self.processor_content.setText(Processor_content)
【讨论】:
我不认为问题是如何从命令结果中提取cpu名称 是的,但他试图用os.system()
给出的任何输出设置标签,但os.system()
会将输出传递给解释器的控制台,而不是变量。在你拥有你想要展示的价值之前,你怎么能继续前进?
你是对的,但如果是这种情况,我建议你也编辑问题以匹配答案
我觉得没必要,看一遍帖子,windows 10 cmd "wmic cpu get name" 会返回当前CPU名称。 (例如:名称 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz)我想将此结果放入 qlabel
没错。通过阅读帖子,我了解到问题是关于 QLabel,而不是处理器名称以上是关于PyQt5 - 如何将 Windows 命令结果插入 qlabel [重复]的主要内容,如果未能解决你的问题,请参考以下文章