pyqtgraph基础入门(一):使用qtdesigner 提升组件


关于 pyqtgraph 基本介绍就省略了。主页: https://www.pyqtgraph.org/

值得一提的是 pyqtgraph 的 github 仓库维护还很活跃,很多更新都是今天才发生的,说明它还很有生命力。(2021.11.17)
在这里插入图片描述

查看基本运行示例

如果已经成功安装pyqtgraph,运行代码

import pyqtgraph.examples
pyqtgraph.examples.run()

即可出现 Excemple 界面。有很多基本的demon可供参考。
在这里插入图片描述

用QtDesigner使用pyqtgraph

假设在QtDesigner已经创建好一个简单的界面
在这里插入图片描述
操作步骤:

  1. 选中希望提升的组件
    在这里插入图片描述

  2. 右键选择提升为
    在这里插入图片描述

  3. 添加需要添加的组件名称及对应头文件(我的头文件直接写pyqtgraph的) 这里我选择了GraphicsLayoutWidget在这里插入图片描述4. 点击提升为对应的模块5. 可以在右侧查看当前模块的属性图中的widget模块已经被提升为GraphicsLayoutWidget了在这里插入图片描述

  4. 在命令行运行pyuic5 -o XXX.py XXX.ui 即可自动生成对应的.py文件

  5. 另外创建一个py文件导入该文件包含的类即可运行

效果展示

现在已经有了这三个文件:

在这里插入图片描述
test.ui正常是不用看懂的。
window.py内容如下:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = GraphicsLayoutWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(120, 90, 531, 331))
        self.widget.setObjectName("widget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(330, 450, 93, 28))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))


from pyqtgraph import GraphicsLayoutWidget


main.py内容如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from window import Ui_MainWindow


class MainWidow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWidow, self).__init__()
        self.setupUi(self)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWidow()
    window.show()
    sys.exit(app.exec_())

运行 main.py 得到界面:
在这里插入图片描述

源码文件

https://gitee.com/xixo549845545/pyqtgraph_my_cookbook
本节内容在ch1中。


版权声明:本文为Xixo0628原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。