python programming GUI综合实战(在GUI上画图)


import os
import platform
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * import numpy as np
import matplotlib
matplotlib.use("Qt5Agg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure #注意不是pyplot下的那个figure class myMainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("Logistic Map: x:=rx(1-x)") #添加工具栏
self.labelX = QLabel('x1: ')
self.labelR = QLabel(' r: ')
self.spinX = QDoubleSpinBox()
self.spinX.setRange(0, 1)
self.spinX.setValue(0.02)
self.spinX.setSingleStep(0.01)
self.spinR = QDoubleSpinBox()
self.spinR.setRange(1.0, 6.0)
self.spinR.setValue(2.0)
self.spinR.setSingleStep(0.02) s = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Expanding)
self.layout = QHBoxLayout()
self.layout.addWidget(self.labelX)
self.layout.addWidget(self.spinX)
self.layout.addWidget(self.labelR)
self.layout.addWidget(self.spinR)
self.layout.addSpacerItem(s) self.containWidget = QWidget()
self.containWidget.setLayout(self.layout)
self.toolDockWidget = QDockWidget("Input:", self)
self.toolDockWidget.setAllowedAreas(Qt.BottomDockWidgetArea)
self.toolDockWidget.setWidget(self.containWidget)
self.addDockWidget(Qt.BottomDockWidgetArea, self.toolDockWidget) self.spinX.valueChanged.connect(self.updateUi)
self.spinR.valueChanged.connect(self.updateUi) #绘图
self.fig = Figure(figsize=(12, 6), dpi=100)
self.figureCanvas = FigureCanvas(self.fig)
self.graphicscene = QGraphicsScene()
self.graphicscene.addWidget(self.figureCanvas)
self.graphicview = QGraphicsView()
self.graphicview.setScene(self.graphicscene)
self.setCentralWidget(self.graphicview)
self.updateUi() def generateData(self, x1, r):
arr = [x1]
x = x1
for i in range(1, 99):
x = r * x * (1-x)
arr.append(x)
d = np.array(arr)
return d def updateUi(self):
#计算
self.x1 = self.spinX.value()
self.r = self.spinR.value()
self.data = self.generateData(self.x1, self.r) #显示
self.fig.clf()
self.ax = self.fig.add_subplot(1,1,1)
self.ax.plot(self.data)
self.figureCanvas.draw() app = QApplication(sys.argv)
form = myMainWindow()
form.setMinimumSize(1500, 800)
form.show()
app.exec_()

python programming GUI综合实战(在GUI上画图)的更多相关文章
- Python接口测试实战1(上)- 接口测试理论
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)
性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...
- Python字典使用--词频统计的GUI实现
字典是针对非序列集合而提供的一种数据类型,字典中的数据是无序排列的. 字典的操作 为字典增加一项 dict[key] = value students = {"Z004":&quo ...
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战4(上) - 接口测试框架实战
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战3(上)- Python操作数据库
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- python实现串口通讯小程序(GUI界面)
python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...
- Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...
- Unity3D入门之GUI基础以及常用GUI控件使用(2)
1.GUI基础 (1)GUI部分是每帧擦除重绘的,只应该在OnGUI中绘制GUI,按钮:GUILayout.Button(“Hello”); 只读标签:GUILayout.Label() (2)修改控 ...
随机推荐
- 版本控制工具 svn 二
一.图标 忽略图标 实例 二.版本 回滚 tortoisesvn ——> 版本更新——>一般情况下使用 “显示日子” 回滚 三.版本冲突 版本冲突产生原因 多人先后提交文件,每个人提交的文 ...
- python操作kafka实践
1.先看最简单的场景,生产者生产消息,消费者接收消息,下面是生产者的简单代码. ------------------------------------------------------------ ...
- Java高级技术点面试问题-IO相关面试问题
java网络编译: 基础知识:①.ip地址和端口号:ip地址是用来识别网络中的一个实体,而这个实体可以理解为一个主机,而端口号则是用来区分具体的通讯程序的.②.tcp / udp协议:tcp是一个可靠 ...
- sql 178. 分数排名
编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有“间隔”. +----+----- ...
- springboot-拦截器redis注入空问题解决
转自:https://blog.csdn.net/liuyang1835189/article/details/81056162 主要问题是在拦截器的配置类里面,配置的类,spring容器无法获取,所 ...
- runnerw.exe: CreateProcess failed with error 216 (no message available)
看描述,创建进程失败,应该是main这个入口文件的问题. 检查包名.发现问题,IDE自动将包名导成了当前的目录名(模块) 上图两者不一致导致 解决: 修改包名为main 注:一个model下只能有一个 ...
- 在配置tensorflow时踩的无数个坑
在下午尝试配置tensorflow环境时,遇到了许多天坑,讲真的心态炸了好几次,特此写下这篇记录,希望能给看到朋友一点帮助. 先说一下这抓狂的一天的起因,比赛项目想用SVM进行一下数据分析,除了常规的 ...
- 使用幕布时,在Session过期后,弹出框加载出登陆的HTML的问题
思路:在登陆页面判断当前加载的Url是否时login/index ,如果不是跳转到登陆页 //设置或获取对象指定的文件名或路径. var Url = window.location.pathname; ...
- iptables防火墙入门
一.iptables基本管理 iptables运行前提:关闭firewalld防火墙再开启iptables,不然造成冲突. 基本指令: 1.部署iptables服务 yum –y install ip ...
- Hive中将文件加载到数据库表失败解决办法
Hive中将文件加载到数据库表失败解决办法(hive创建表失败) 遇到的问题: FAILED: Execution Error, return code 1 from org.apache.hadoo ...