PyQT5之PyQtGraph实时数据显示
1.PyQT5图像2.PyQT5水平垂直布局3.PyQT5之图片左右翻页4.PyQT5之QPushButton和布局5.PyQT5之label6.PyQT5之选择图片7.PyQT5之自定义信号8.PyQT5之窗口9.PyQT5之菜单栏和工具栏10.PyQT5之QComboBox11.PyQT5之Checkbox12.PyQT5之QRadioButton13.PyQT5之单行文本输入到多行显示窗14.PyQT5之网格布局多图片显示15.PyQtGraph绘制折线图
16.PyQT5之PyQtGraph实时数据显示
17.PyQT5之窗口最大化最小化18.PyQT5之QSS基础/子控件选择器19.PyQT5样式设置20.PyQT5绘图21.PyQT5窗口样式设置22.PyQT5之设置窗口控件风格23.PyQT5之多窗口交互24.PyQT5之override覆盖槽函数25.PyQT5之为槽函数传递参数26.PyQT5信号与槽的连接27.PyQT5信号刷新时间28.PyQT5之信号关闭窗口29.信号与槽N对N30.PyQT5之多个信号31.PyQT5之QTreeView32.PyQT5内嵌html33.PyQT5加载本地web页面34.PyQT5之QWebEngineView35.PyQT5之QThread36.PyQT5之QTimer37.PyQT5之QStackedWidget38.PyQT5之QTreeWidget-QTabWidget39.PyQT5之QTableWidget40.PyQT5之QListWidget41.PyQT5之QListView42.PyQT5之二维表QTableView43.PyQT5打印机44.PyQT5之QPainter45.PyQT5之QFontDialog46.PyQT5之QInputDialog47.PyQT5之QMessageBox48.PyQT5之QDialog49.PyQT5之多页面切换50.PyQT5之计数器控件QSpinBox51.PyQT5之滑块控件QSlider52.PyQtGraph绘图参考53.PyQtGraph之多图绘制54.PyQtGraph之柱状图55.PyQt5选择文件控件QFileDialog实例1:CPU使用率实时展示
from PyQt5 import QtWidgets,QtCore,QtGui
import pyqtgraph as pg
import sys
import traceback
import psutil
class MainUi(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("CPU使用率监控")
self.main_widget = QtWidgets.QWidget() # 创建一个主部件
self.main_layout = QtWidgets.QGridLayout() # 创建一个网格布局
self.main_widget.setLayout(self.main_layout) # 设置主部件的布局为网格
self.setCentralWidget(self.main_widget) # 设置窗口默认部件
self.plot_widget = QtWidgets.QWidget() # 实例化一个widget部件作为K线图部件
self.plot_layout = QtWidgets.QGridLayout() # 实例化一个网格布局层
self.plot_widget.setLayout(self.plot_layout) # 设置K线图部件的布局层
self.plot_plt = pg.PlotWidget() # 实例化一个绘图部件
self.plot_plt.showGrid(x=True,y=True) # 显示图形网格
self.plot_layout.addWidget(self.plot_plt) # 添加绘图部件到K线图部件的网格布局层
# 将上述部件添加到布局层中
self.main_layout.addWidget(self.plot_widget, 1, 0, 3, 3)
self.setCentralWidget(self.main_widget)
self.plot_plt.setYRange(max=100,min=0)
self.data_list = []
self.timer_start()
# 启动定时器 时间间隔秒
def timer_start(self):
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.get_cpu_info)
self.timer.start(1000)
# 获取CPU使用率
def get_cpu_info(self):
try:
cpu = "%0.2f" % psutil.cpu_percent(interval=1)
self.data_list.append(float(cpu))
print(float(cpu))
self.plot_plt.plot().setData(self.data_list,pen='g')
except Exception as e:
print(traceback.print_exc())
def main():
app = QtWidgets.QApplication(sys.argv)
gui = MainUi()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
实例2:气温数据实时展示
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pyqtgraph as pg
import sys
from random import randint
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('pyqtgraph作图')
# 创建 PlotWidget 对象
self.pw = pg.PlotWidget()
# 设置图表标题
self.pw.setTitle("气温趋势",
color='#008080',
size='12pt')
# 设置上下左右的label
self.pw.setLabel("left","气温(摄氏度)")
self.pw.setLabel("bottom","时间")
# 设置Y轴 刻度 范围
self.pw.setYRange(min=-10, # 最小值
max=50) # 最大值
# 显示表格线
self.pw.showGrid(x=True, y=True)
# 背景色改为白色
self.pw.setBackground('w')
# 设置Y轴 刻度 范围
self.pw.setYRange(min=-10, # 最小值
max=50) # 最大值
# 居中显示 PlotWidget
self.setCentralWidget(self.pw)
# 实时显示应该获取 PlotDataItem对象, 调用其setData方法,
# 这样只重新plot该曲线,性能更高
self.curve = self.pw.plot(
pen=pg.mkPen('r', width=1)
)
self.i = 0
self.x = [] # x轴的值
self.y = [] # y轴的值
# 启动定时器,每隔1秒通知刷新一次数据
self.timer = QTimer() # QtCore
self.timer.timeout.connect(self.updateData)
self.timer.start(1000)
def updateData(self):
self.i += 1
self.x.append(self.i)
# 创建随机温度值
self.y.append(randint(10, 30))
# plot data: x, y values
self.curve.setData(self.x, self.y)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
app.exec_()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析