音乐网站开发,重庆相册制作工厂,深圳市公司网站建设服务机构,智能小程序平台1、显示逻辑 MainWindow: 这是主窗口#xff0c;所有的其他组件都会被添加到这个窗口上。,
centralwidget: 这是主窗口的中心部件#xff0c;它包含了其他的部件。,pushButton: 这是一个按钮#xff0c…1、显示逻辑 MainWindow: 这是主窗口所有的其他组件都会被添加到这个窗口上。,
centralwidget: 这是主窗口的中心部件它包含了其他的部件。,pushButton: 这是一个按钮位于主窗口的中心部件上。,pyqtgraph1: 这是一个GraphicsLayoutWidget对象它是一个绘图部件位于主窗口的中心部件上。,pyqtgraph2: 这是另一个GraphicsLayoutWidget对象它也是一个绘图部件位于主窗口的中心部件上。,pushButton_2: 这是另一个按钮位于主窗口的中心部件上。,menubar: 这是主窗口的菜单栏。,statusbar: 这是主窗口的状态栏。
from PyQt5 import QtCore, QtGui, QtWidgets
from pyqtgraph import GraphicsLayoutWidget
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.pushButton QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(670, 140, 75, 23))self.pushButton.setObjectName(pushButton)self.pyqtgraph1 GraphicsLayoutWidget(self.centralwidget)self.pyqtgraph1.setGeometry(QtCore.QRect(10, 10, 601, 201))self.pyqtgraph1.setObjectName(pyqtgraph1)self.pyqtgraph2 GraphicsLayoutWidget(self.centralwidget)self.pyqtgraph2.setGeometry(QtCore.QRect(10, 220, 381, 351))self.pyqtgraph2.setObjectName(pyqtgraph2)self.pushButton_2 QtWidgets.QPushButton(self.centralwidget)self.pushButton_2.setGeometry(QtCore.QRect(430, 380, 75, 23))self.pushButton_2.setObjectName(pushButton_2)MainWindow.setCentralWidget(self.centralwidget)self.menubar QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))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.translateMainWindow.setWindowTitle(_translate(MainWindow, MainWindow))self.pushButton.setText(_translate(MainWindow, 水平绘图))self.pushButton_2.setText(_translate(MainWindow, 垂直绘图))
2、业务逻辑
import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow, QApplication
import pyqtgraph as pg
from Ui_pyqtgraph_pyqt import Ui_MainWindow
import numpy as npclass MainWindow(QMainWindow, Ui_MainWindow):Class documentation goes here.def __init__(self, parentNone):Constructorparam parent reference to the parent widgettype QWidgetsuper(MainWindow, self).__init__(parent)pg.setConfigOption(background, #f0f0f0) # 设置背景为灰色pg.setConfigOption(foreground, d) # 设置前景包括坐标轴线条文本等等为黑色。pg.setConfigOptions(antialiasTrue) # 使曲线看起来更光滑而不是锯齿状# pg.setConfigOption(antialias,True) # 等价于上一句所不同之处在于setconfigOptions可以传递多个参数进行多个设置而setConfigOption一次只能接受一个参数进行一个设置。self.setupUi(self)pyqtSlot()def on_pushButton_clicked(self):Slot documentation goes here.self.pyqtgraph1.clear() # 清空里面的内容否则会发生重复绘图的结果第一种绘图方式self.pyqtgraph1.addPlot(title绘图单条线, ynp.random.normal(size100), penpg.mkPen(colorb, width2))第二种绘图方式plt2 self.pyqtgraph1.addPlot(title绘制多条线)plt2.plot(np.random.normal(size150), penpg.mkPen(colorr, width2), nameRed curve) # pg.mkPen的使用方法设置线条颜色为红色宽度为2。plt2.plot(np.random.normal(size110) 5, pen(0, 255, 0), nameGreen curve)plt2.plot(np.random.normal(size120) 10, pen(0, 0, 255), nameBlue curve)pyqtSlot()def on_pushButton_2_clicked(self):Slot documentation goes here.如果没有进行第一次绘图就开始绘图然后做绘图标记否则就什么都不做try:self.first_plot_flag # 检测是否进行过第一次绘图。except:plt self.pyqtgraph2.addPlot(title绘制条状图)x np.arange(10)y1 np.sin(x)y2 1.1 * np.sin(x 1)y3 1.2 * np.sin(x 2)bg1 pg.BarGraphItem(xx, heighty1, width0.3, brushr)bg2 pg.BarGraphItem(xx 0.33, heighty2, width0.3, brushg)bg3 pg.BarGraphItem(xx 0.66, heighty3, width0.3, brushb)plt.addItem(bg1)plt.addItem(bg2)plt.addItem(bg3)self.pyqtgraph2.nextRow()p4 self.pyqtgraph2.addPlot(title参数图显示网格)x np.cos(np.linspace(0, 2 * np.pi, 1000))y np.sin(np.linspace(0, 4 * np.pi, 1000))p4.plot(x, y, penpg.mkPen(colord, width2))p4.showGrid(xTrue, yTrue) # 显示网格self.first_plot_flag True # 第一次绘图后进行标记if __name__ __main__:app QApplication(sys.argv)ui MainWindow()ui.show()sys.exit(app.exec_())