PyQt5固定宽度实现CPU监控器
在本文中,我们将详细介绍如何使用PyQt5创建一个简单的CPU监控器,该监控器将显示当前CPU利用率并具有固定宽度。我们将使用psutil库来获取系统CPU利用率,并使用PyQt5来创建GUI界面。
环境配置
在开始之前,确保你已经安装了以下软件和库:
你可以使用以下命令来安装这些库:
pip install pyqt5 psutil
创建CPU监控器
首先,我们创建一个名为cpu_monitor.py
的Python脚本,并在其中编写以下代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
from PyQt5.QtCore import QTimer
import psutil
class CPUMonitor(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("CPU Monitor")
self.setGeometry(100, 100, 200, 50)
self.layout = QVBoxLayout()
self.label = QLabel()
self.label.setAlignment(0x0004) # Align center
self.layout.addWidget(self.label)
self.setLayout(self.layout)
self.timer = QTimer()
self.timer.timeout.connect(self.update_cpu_utilization)
self.timer.start(1000) # Update every second
def update_cpu_utilization(self):
cpu_percent = psutil.cpu_percent(interval=1)
self.label.setText(f"CPU Utilization: {cpu_percent}%")
if __name__ == "__main__":
app = QApplication(sys.argv)
cpu_monitor = CPUMonitor()
cpu_monitor.show()
sys.exit(app.exec_())
在上面的代码中,我们创建了一个CPUMonitor
类,该类继承自QWidget
。在构造函数中,我们设置了窗口的标题、大小并创建了一个垂直布局。我们还创建了一个QLabel
控件用于显示CPU利用率,并将其添加到布局中。然后我们使用QTimer
来定时更新CPU利用率,更新间隔为1秒。
最后,在main
函数中,我们创建了一个QApplication
应用,实例化了CPUMonitor
类并显示窗口,然后启动了应用。
运行程序
要运行我们的CPU监控器,只需在终端中执行以下命令:
python cpu_monitor.py
这将打开一个窗口,显示当前的CPU利用率。由于我们使用固定宽度,默认情况下应用程序会自适应窗口大小,并且标签文本会水平滚动。为了解决这个问题,我们需要将标签文本的最大宽度设置为窗口的宽度。
实现固定宽度
为了实现固定宽度,我们需要在CPUMonitor
类中重写resizeEvent
方法。这样当窗口的大小发生变化时,我们就可以调整标签文本的大小。
修改代码如下:
def resizeEvent(self, event):
self.label.setFixedWidth(event.size().width())
现在,当窗口的大小发生变化时,标签文本的宽度将始终等于窗口的宽度。重新运行程序,你将看到CPU监控器现在具有固定宽度,并且标签文本不再水平滚动。
结论
通过本文,我们学习了如何使用PyQt5创建一个简单的CPU监控器,并实现了固定宽度。我们还使用了psutil库来获取系统的CPU利用率。你可以根据需要进一步扩展和定制CPU监控器,例如添加图表、历史数据记录等功能。