找回密码
 立即注册
Qt开源社区 门户 查看内容

PyQt界面绘制曲线

2019-10-25 07:49| 发布者: admin| 查看: 826| 评论: 0

摘要: mywindow.pyfrom PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) ...
mywindow.py
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.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(70, 60, 121, 41))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(12)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(70, 130, 800, 600))
self.groupBox.setMinimumSize(QtCore.QSize(800, 600))
self.groupBox.setObjectName("groupBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 18))
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", "sin"))
self.groupBox.setTitle(_translate("MainWindow", "GroupBox"))
test.py
import numpy as np
from mywindow import Ui_MainWindow
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QSizePolicy
import matplotlib
matplotlib.use("Qt5Agg") # 声明使用QT5
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt

class MyFigure(FigureCanvas):
def __init__(self, width=5, height=4, dpi=100):
self.fig = plt.figure(figsize=(width, height), dpi=dpi)
super(MyFigure, self).__init__(self.fig)
self.axes = self.fig.add_subplot(111)
FigureCanvas.setSizePolicy(self,
QSizePolicy.Expanding,
QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)

class myplt(QMainWindow, Ui_MainWindow):
def __init__(self):
super(myplt, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.plt_sin)
self.layout = QGridLayout(self.groupBox) # 继承容器groupBox
def plt_sin(self):
t = np.arange(0.0, 3.0, 0.01)
y = np.sin(2 * np.pi * t)
self.F = MyFigure(width=3, height=2, dpi=110)
font1 = {'family': 'Times New Roman',
'weight': 'normal',
'size': 20,
}
self.F.axes.plot(t, y)
plt.xlabel("t", font1, color='k')
plt.ylabel("sin(t)", font1, color='k')
self.layout.addWidget(self.F, 0, 0)

if __name__ == "__main__":
app = QApplication(sys.argv)
ui = myplt()
ui.show()
sys.exit(app.exec_())
运行test.py



点击绘制按钮sin





The end


长按二维码 关注塑今是




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:塑今是,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了