【pyqtgraph绘图】Qt速成课程

解读官方API-Qt速成课程

参考:http://www.pyqtgraph.org/documentation/qtcrashcourse.html

Qt速成课程

PyQtGraph广泛使用Qt来生成几乎所有的可视化输出和接口。Qt的文档编写得非常好,我们鼓励所有pyqtgraph开发人员熟悉它。

本节的目的是介绍使用Qt(使用PyQt或PySide)为pyqtgraph开发人员编程。

QWidgets和布局

Qt GUI几乎总是由几个基本组件组成:

  • 一个窗口。这通常由QMainWindow提供,但请注意,如果窗口小部件没有父窗口,则只需调用widget.show() 即可在其窗口中显示所有QWidgets。
  • 多个QWidget实例。如QPushButton,QLabel,QComboBox等。
  • QLayout实例(可选,但建议有布局),它自动管理窗口小部件的位置,允许GUI可根据用户需要调整大小。

PyQtGraph通过提供自己的QWidget子类来嵌入到开发者已经用Qt、PyQt写好的GUI中

例:

from PyQt5.QtWidgets import QPushButton,QWidget,QApplication,QGridLayout,QListWidget,QLineEdit
import pyqtgraph as pg

## 初始化pyqt
app = QApplication([])

## 定义顶级窗口部件来保存所有内容
w = QWidget()

## 创建一些小部件放在顶级窗口中
btn = QPushButton(‘press me‘)
text = QLineEdit(‘enter text‘)
listw = QListWidget()
plot = pg.PlotWidget()

## 创建网格布局以管理窗口小部件的大小和位置
layout = QGridLayout()
w.setLayout(layout)

## 将部件添加到布局中的适当位置
layout.addWidget(btn, 0, 0)
layout.addWidget(text, 1, 0)
layout.addWidget(listw, 2, 0)
layout.addWidget(plot, 0, 1, 3, 1)

## 将部件显示为新窗口
w.show()
## 启动pyqt事件循环
app.exec_()

可以使用Qt Designer以可视化拖拽方式设计更复杂的界面,

这样您只需将窗口小部件拖动到窗口中即可定义其外观。

命名约定

事实上,pyqtgraph中的每个类都是Qt提供的基类的扩展。在阅读文档时,请记住所有Qt的类都以字母“Q”开头,而pyqtgraph的类则不是。

在阅读任何类的方法时,查看使用哪些Qt基类和查看Qt文档 通常很有帮助。

Qt的大多数类定义了从常规方法中难以区分的信号。

由pyqtgraph定义的几乎所有信号表达都以‘sig‘开头,表示这些信号不是在Qt级别定义。

在大多数情况下,以“Widget”结尾的类是从QWidget继承的,因此可以用作Qt窗口中的GUI元素。

以‘Item‘结尾的类是QGraphicsItem的子类,只能在QGraphicsView实例中显示(例如GraphicsLayoutWidget或PlotWidget)。

信号,插槽和事件

[想要了解更多..请在pyqtgraph论坛上发帖请求,如果你想阅读更多]

Qt通过执行其事件循环来检测并响应用户交互。

  • 事件循环中会发生什么?
  • 我什么时候需要使用QApplication.exec_()?
  • 我对事件循环执行有什么控制?(QApplication.processEvents)

GraphicsView和GraphicsItems

有关Qt GraphicsView架构的更多信息:http://qt-project.org/doc/qt-4.8/graphicsview.html

坐标系统和转换(Coordinate Systems and Transformations)

有关Qt GraphicsView中坐标系的更多信息:http://qt-project.org/doc/qt-4.8/graphicsview.html#the-graphics-view-coordinate-system

Mouse and Keyboard Input

QTimer, Multi-Threading

Multi-threading vs Multi-processing in Qt

原文地址:https://www.cnblogs.com/XJT2018/p/10275449.html

时间: 2024-10-01 03:04:44

【pyqtgraph绘图】Qt速成课程的相关文章

【pyqtgraph绘图】如何使用pyqtgraph

解读官方API-如何使用pyqtgraph 这里有一些使用pyqtgraph的建议方法: 从交互式shell(python -i,ipython等) 从应用程序显示弹出窗口 在PyQt应用程序中嵌入小部件 命令行使用 PyQtGraph使得从命令行可视化数据变得非常容易.注意: import pyqtgraph as pg pg.plot(data) # 数据可以是列表或numpy数组 上面的例子将打开一个窗口,显示给定数据的线图.调用  pg.plot返回创建的plot widget句柄,允许

谷歌机器学习速成课程---3降低损失:迭代方法

迭代学习可能会让您想到"Hot and Cold"这种寻找隐藏物品(如顶针)的儿童游戏.在我们的游戏中,"隐藏的物品"就是最佳模型.刚开始,您会胡乱猜测("w1 的值为 0."),等待系统告诉您损失是多少.然后,您再尝试另一种猜测("w1 的值为 0.5."),看看损失是多少.哎呀,这次更接近目标了.实际上,如果您以正确方式玩这个游戏,通常会越来越接近目标.这个游戏真正棘手的地方在于尽可能高效地找到最佳模型. 下图显示了机器学

AI - Google的机器学习速成课程

Google的机器学习速成课程 机器学习速成课程(MLCC,machine-learning crash-course):https://developers.google.com/machine-learning/crash-course/ 机器学习术语表:https://developers.google.com/machine-learning/glossary/ 基本全程中文,程共25节,大约15小时,包含40多项练习,有对算法实际运用的互动直观展示,可以更容易地学习和实践机器学习概念.

【pyqtgraph绘图】线条,填充和颜色

解读官方API-线条,填充和颜色 参考: http://www.pyqtgraph.org/documentation/style.html 线条,填充和颜色 Qt依靠其QColor,QPen和QBrush类来为其所有绘图指定线条和填充样式. 在pyqtgraph中也使用相同的系统,但pyqtgraph也允许许多指定相同样式选项的简写方法. pyqtgraph中的许多函数和方法都接受指定线条样式(笔),填充样式(笔刷)或颜色的参数.对于大多数这些函数参数,可以使用以下值: 表示颜色的单字符字符(

【pyqtgraph绘图】安装pyqtgraph

解读官方API-安装 安装 参考:http://www.pyqtgraph.org/documentation/installation.html 根据您的需要,有许多不同的方式来安装pyqtgraph,使用Python pip命令最简洁高效: pip install pyqtgraph 要访问最新的功能和错误修正,请从github复制pyqtgraph: git clone https://github.com/pyqtgraph/pyqtgraph 到github上下载源代码安装pyqtgr

【pyqtgraph绘图】案例-动态的正余弦波形图

先看一个简单的小例子: 完整代码: import numpy as np import pyqtgraph as pg import sys from PyQt5.QtWidgets import QWidget,QApplication,QFrame,QGridLayout,QVBoxLayout class Example(QWidget): def __init__(self): super(Example, self).__init__() self.initUI() self.gene

【PyQt5】使用pyqtgraph绘图时UI卡顿的解决

思路是把所有数据处理计算的过程放在主线程之外的子线程内 问题,如果不对数据进行剪裁,长时间过后主线程内的绘图会消耗比较多的时间 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5 import QtWidgets,QtGui,QtCore import pyqtgraph as pg import sys,os,random,time,psutil class

谷歌机器学习速成课程---1框架处理

本文内容摘自  谷歌机器学习免费课程MLCC: https://developers.google.com/machine-learning/crash-course/ ============================================================================================================================================= 什么是(监督式)机器学习?简单来说,它的定义如

谷歌机器学习速成课程---2深入了解机器学习(Descending into ML)

1.线性回归 人们早就知晓,相比凉爽的天气,蟋蟀在较为炎热的天气里鸣叫更为频繁.数十年来,专业和业余昆虫学者已将每分钟的鸣叫声和温度方面的数据编入目录.Ruth 阿姨将她喜爱的蟋蟀数据库作为生日礼物送给您,并邀请您自己利用该数据库训练一个模型,从而预测鸣叫声与温度的关系. 首先建议您将数据绘制成图表,了解下数据的分布情况: 图 1. 每分钟的鸣叫声与温度(摄氏度)的关系. 毫无疑问,此曲线图表明温度随着鸣叫声次数的增加而上升.鸣叫声与温度之间的关系是线性关系吗?是的,您可以绘制一条直线来近似地表