我想在 pyQT GUI 中繪制圖表。我已經閱讀了很多教程,但是那些在單獨的視窗中繪制圖表。我需要將其繪制在與其他按鈕和欄位相同的視窗中。
在我的 main.py 檔案中,我匯入了使用 QT 設計器生成的 Ui_MainWindow 類。但我不知道如何在 MainWindow 中繪制它
Python圖形用戶界面
Matplotlib 畫布類創建圖形
class MplCanvas(FigureCanvas):
def __init__(self):
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
FigureCanvas.__init__(self, self.fig)
FigureCanvas.setSizePolicy(self, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
def atualizar(self):
global tempoInicio
tempoInicio = self.campoTempoInicio.dateTime()
print(tempoInicio.toPyDateTime())
x=range(0, 10)
y=range(0, 20, 2)
self.FigureCanvas.canvas.ax.plot(x, y)
self.FigureCanvas.canvas.draw()
我試過這樣,但效果不佳(按照教程)
預先感謝您閱讀本文。
uj5u.com熱心網友回復:
這是一個應該有幫助的完整示例:
import sys
from PyQt5 import QtWidgets, QtCore
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
import matplotlib.pyplot as plt
class PlotViewer(QtWidgets.QWidget):
doubleClickAction = QtCore.pyqtSignal(str)
def __init__(self, parent=None):
super(PlotViewer, self).__init__(parent)
self.figure = plt.figure(figsize=(5, 5))
self.figureCanvas = FigureCanvas(self.figure)
self.navigationToolbar = NavigationToolbar(self.figureCanvas, self)
# create main layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.navigationToolbar)
layout.addWidget(self.figureCanvas)
self.setLayout(layout)
# create an axis
x = range(0, 10)
y = range(0, 20, 2)
ax = self.figure.add_subplot(111)
ax.plot(x, y)
# show canvas
self.figureCanvas.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widget = PlotViewer()
widget.show()
app.exec_()
uj5u.com熱心網友回復:
在查看了非相關教程之后,我發現了這個:https ://www.pythonguis.com/tutorials/embed-pyqtgraph-custom-widgets-qt-app/, 它教如何做我需要的。
不要現在為什么它以前沒有出現。但是有效!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491179.html