pyqt5 QLineEdit使用matplotlib绘制的图形,代码示例
时间: 2024-03-25 07:36:22 浏览: 73
下面是一个简单的示例代码,使用 PyQT5 的 QLineEdit 控件和 Matplotlib 库绘制图形:
```python
import sys
import numpy as np
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLineEdit
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# 创建一个 QWidget
centralWidget = QWidget(self)
self.setCentralWidget(centralWidget)
# 创建一个 QVBoxLayout,并将 QWidget 设置为布局
layout = QVBoxLayout(centralWidget)
# 创建一个 QLineEdit
self.lineEdit = QLineEdit(self)
layout.addWidget(self.lineEdit)
# 创建一个 FigureCanvas
self.figure = Figure()
self.canvas = FigureCanvas(self.figure)
layout.addWidget(self.canvas)
# 在 Figure 中绘制图形
self.ax = self.figure.add_subplot(111)
x = np.linspace(-10, 10, 100)
self.ax.plot(x, np.sin(x))
# 将 QLineEdit 的文本更新时绘制新的图形
self.lineEdit.textChanged.connect(self.updatePlot)
def updatePlot(self):
# 获取 QLineEdit 的文本
text = self.lineEdit.text()
# 在 Figure 中绘制新的图形
x = np.linspace(-10, 10, 100)
y = eval(text)
self.ax.clear()
self.ax.plot(x, y)
self.canvas.draw()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
```
这个示例程序创建了一个包含 QLineEdit 控件和 Matplotlib 图形的 PyQT5 窗口。当用户在 QLineEdit 中输入表达式时,程序会绘制新的图形。注意,在这个示例中,我们使用了 eval 函数将用户的输入作为 Python 代码执行。为了安全起见,你应该在真实的应用程序中采用更加谨慎的方法来执行用户输入的代码。
阅读全文