zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    自动机
    C语言文法
    实验报告一:词法分析
    Python的基础综合练习
    Python基础综合练习
    turtle画五星红旗
    熟悉常用的Linux操作
    大数据概述
    对学习编译原理的看法
    LINUX
  • 原文地址:https://www.cnblogs.com/XJT2018/p/10275449.html
Copyright © 2011-2022 走看看