python可视化----Qt designer 插入图形

插入图形

在Qt Designer中只能插入一些Qt的控件,那么使用pyqtgraph 绘制的图形怎么插入到设计面板中呢?

使用pyqtgraph将需要的图形,定义到一个类中,形成图形窗口,然后在Qt designer中拖入一个QWidget空白窗口,右键 > 提升为 > 自定义类,配置头文件(导入路径)

注意:自定义类实例化时要传入一个父控件
如下效果:
在这里插入图片描述
在这里插入图片描述

自定义类

# __author__ = "laufing"
# class_based_qt
# laufing_qt

from PySide2.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QHBoxLayout, QVBoxLayout
from PySide2.QtCore import QTimer
from PySide2.QtGui import QIcon, QFont, QColor
import pyqtgraph as pg
from pyqtgraph import GraphicsLayoutWidget, PlotWidget
from pyqtgraph_7 import MyWindow


class PWin(QWidget):
    def __init__(self, parent):
        super(PWin, self).__init__()
        self.resize(800, 600)
        self.move(200, 200)
        self.setUI(parent)

    def setUI(self, parent):
        # 实例化布局对象
        vb = QVBoxLayout()

        # 第一个子控件,写好的子窗口
        myWin = MyWindow()

        # 第二个子控件
        pw = PlotWidget()
        # 生成数据
        import numpy as np
        x = np.random.normal(loc=1, scale=2, size=1000)
        freq, section = np.histogram(x, bins=50)
        pw.plot(section, freq, stepMode="center", fillLevel=0, fillBrush=(100, 100, 100), fillOutline="r")

        # 布局添加子控件
        vb.addWidget(myWin)
        vb.addWidget(pw)
        vb.setSpacing(10)
        vb.setStretch(0, 1)
        vb.setStretch(1, 1)
        # 父窗口 设置垂直布局
        self.setLayout(vb)
        # 设置父控件
        self.setParent(parent)


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = QWidget()
    pwin = PWin(w)
    w.show()

    exit_code = app.exec_()
    sys.exit(exit_code)

然后在Qt Designer中拖入一个QWidget空白控件,右键提升为该类。
最后将设计的界面转为py文件(即一个类)

# 展示界面
app = QApplication(sys.argv)

w = QWidget()
# 界面类 实例化并传入父控件
Ui_Form().setupUi(w)
w.show()
sys.exit(app.exec_())

 
 

综合案例

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值