解读官方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

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

  1. 【pyqtgraph绘图】在pyqtgraph中绘图

    解读pyqtgraph官方API-在pyqtgraph中绘图 参考: http://www.pyqtgraph.org/documentation/plotting.html 在pyqtgraph中绘 ...

  2. 【pyqtgraph绘图】如何使用pyqtgraph

    解读官方API-如何使用pyqtgraph 这里有一些使用pyqtgraph的建议方法: 从交互式shell(python -i,ipython等) 从应用程序显示弹出窗口 在PyQt应用程序中嵌入小 ...

  3. 机器学习入门 - Google机器学习速成课程 - 笔记汇总

    机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...

  4. 机器学习入门 - Google的机器学习速成课程

    1 - MLCC 通过机器学习,可以有效地解读数据的潜在含义,甚至可以改变思考问题的方式,使用统计信息而非逻辑推理来处理问题. Google的机器学习速成课程(MLCC,machine-learnin ...

  5. React + GraphQL 2020 速成课程

    React + GraphQL 2020 速成课程 technologies React (to build our user interface) GraphQL (to get and chang ...

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

    解读官方API-线条,填充和颜色 参考: http://www.pyqtgraph.org/documentation/style.html 线条,填充和颜色 Qt依靠其QColor,QPen和QBr ...

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

    先看一个简单的小例子: 完整代码: import numpy as np import pyqtgraph as pg import sys from PyQt5.QtWidgets import Q ...

  8. 【pyqtgraph绘图】安装pyqtgraph

    解读官方API-安装 安装 参考:http://www.pyqtgraph.org/documentation/installation.html 根据您的需要,有许多不同的方式来安装pyqtgrap ...

  9. 谷歌机器学习速成课程---降低损失 (Reducing Loss):随机梯度下降法

    在梯度下降法中,批量指的是用于在单次迭代中计算梯度的样本总数.到目前为止,我们一直假定批量是指整个数据集.就 Google 的规模而言,数据集通常包含数十亿甚至数千亿个样本.此外,Google 数据集 ...

随机推荐

  1. centos 安装oracle 11g r2(一)-----软件安装

    centos 安装oracle 11g r2(一)-----软件安装 1.进入管理员权限 [anzerong@localhost ~]# su - root password [root@localh ...

  2. 解决:android源码同步repo sync 时出现的fatal:duplicate path错误

    问题重现: 解决方法: 1.删除android项目里隐藏的 .repo 文件夹中除了以下几个文件夹的其他文件及文件夹 2.重新初始化android项目 repo init -u https//gith ...

  3. c# 使用GDAL处理大图

    注意问题: 1.GDAL 使用官网生成好的dll,必须把Bin目录下的dll一并加到执行目录下去,否则会出错.  2. 用环境变量设置引用路径可以避免一大堆dll放一起.代码如下: /// <s ...

  4. linux下依赖库的版本问题引起的安装失败:libssl-dev版本问题无法安装 :libssl-dev : 依赖: libssl1.0.0 (= 1.0.1-4ubuntu3) 但是 1.0.1-4ubuntu5.31 正要被安装

    依赖库版本问题引起的安装失败解决方法如下有两种: 1.是由于源需要更新,如下操作: libssl-dev : 依赖: libssl0.9.8 (= 0.9.8o-1ubuntu4) 但是 0.9.8o ...

  5. 概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解

    概率霍夫变换(Progressive Probabilistic Hough Transform)的原理很简单,如下所述: 1.随机获取边缘图像上的前景点,映射到极坐标系画曲线: 2.当极坐标系里面有 ...

  6. win7怎么打开加锁文件夹

    在windows 7下,C:\Documents and Settings文件夹是默认锁定的,很多时候要进入进行解除锁定,根据本人实践的经历略作介绍. 1.打计算机,进入c盘文件夹,2.分别点击“组织 ...

  7. 仿迅雷播放器教程 -- C++ 100款开源界面库 (10)

      (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系 ...

  8. [SLAM] 03. ORB-SLAM2

    一年后再读SLAM~ 行业有了不少工程实践方面的突破 一.链接:https://www.zhihu.com/question/53571648/answer/176732257 目前来说,受到业界肯定 ...

  9. [OpenCV] Samples 17: Floodfill

    一种聚类方式,代码解析 #!/usr/bin/env python ''' Floodfill sample. Usage: floodfill.py [<image>] Click on ...

  10. Android文档-开发者指南-第一部分:入门-中英文对照版

    发布的博客,排版太不行了,整理下发在百度盘上了: 第一部分:Introduction(入门) 0.Introduction to Android(引进到Android) 1.Application F ...