python光学仿真PyQt5基础框架教程

前几天为了自己搞一个光学仿真集成GUI界面,于是去研究了一下PyQt5,不得不说这个模块的使用性远远超过了tkinter,强烈推荐,于是准备出一个专栏,记录一下PyQt5学习中遇到的小问题。

这篇先来说说PyQt5创建时候的基础框架。代码如下:

# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.resize(600, 300)
        self.status = self.statusBar()
        self.status.showMessage("这是状态提示", 10000)
        self.setWindowTitle("MainWindow界面")
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

以上就是我们PyQt5主界面的基本框架了,先创建一个类,使用这个类对QMainWindow类进行继承。

其他语句的解释:

self.resize(600,300):对MainWindow进行尺寸调整,横向600个像素点,纵向300个像素点。

self.status = self.statusBar():创建一个状态栏对象

self.status.showMessage("这是状态提示", 10000):显示状态栏信息10000毫秒,即10秒钟, 其中第一个字符串参数"这是状态提示"是最终显示在状态栏的信息,我们可以自由替换。

注意:只有当我们的鼠标在MainWindow窗口内悬停的时候才会显示该状态信息,并且如果我们想要状态栏一直显示某个信息提示,可以将第二个参数的10000改为-1即可。

self.setWindowTitle("MainWindow界面"):设定MainWindow主界面的名称。

app = QApplication(sys.argv):初始化PyQt5中的各个部分,之后我们就可以调用模块中的各个元素。类似与Pygame模块中的Initialization部分。

sys.argv:这个语句存在仅仅是为了将来我们可以在命令行中写入参数进行读取,如果我们不考虑在命令行中进行直接调用,可以将初始化程序改为app = QApplication([])。

window = MainWindow():实例化我们定义好的窗口类对象。

window.show():这句话必须存在,否则运行时我们写好的Gui界面不会显示。

用来显示我们写好的Gui界面。

sys.exit(app.exec_()):sys.exit()表示退出程序操作,app.exec_()类似于tkinter模块中定义Gui界面时进行的Mainloop(),即开始执行主循环体,配合sys.exit()退出命令可以在我们退出程序时清空内存,达到洁净模式。

最终运行后的效果如下:

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

以上就是python光学仿真PyQt5基础框架教程的详细内容,更多关于PyQt5基础框架的资料请关注我们其它相关文章!

(0)

相关推荐

  • PyQT5速成教程之Qt Designer介绍与入门

    Qt Designer的介绍 在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成.Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷.Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果.Qt Designer生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成.py文件. Qt Designer随PyQt5-tools包一起安装,其安装路径在 "Python

  • python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

    本文主要列出来python图形开发GUI库pyqt5的窗体,控件属性与方法如果你想看看python图形开发GUI库pyqt5的基础使用方法可以查看我们的另一篇文章 python图形开发GUI库pyqt5的基本使用方法详解 基本框架 import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * class Demo(QWidget): def __init__(self):

  • 详解Python GUI编程之PyQt5入门到实战

    1. PyQt5基础 1.1 GUI编程学什么 大致了解你所选择的GUI库 基本的程序的结构:使用这个GUI库来运行你的GUI程序 各种控件的特性和如何使用 控件的样式 资源的加载 控件的布局 事件和信号 动画特效 界面跳转 设计工具的使用 1.2 PyQT是什么 QT是跨平台C++库的集合,它实现高级API来访问现代桌面和移动系统的许多方面.这些服务包括定位和定位服务.多媒体.NFC和蓝牙连接.基于Chromium的web浏览器以及传统的UI开发.PyQt5是Qt v5的一组完整的Python

  • Python PyQt5整理介绍

    PyQt5 是Digia的一套Qt5应用框架与python的结合,同时支持2.x和3.x,官方网站:www.riverbankcomputing.co.uk/news. PyQt5是由一系列Python模块组成.超过620个类,6000函数和方法.能在诸如Unix.Windows和Mac OS等主流操作系统上运行.PyQt5有两种证书,GPL和商业证书. PyQt5类分为很多模块,主要模块有: QtCore 包含了核心的非GUI的功能.主要和时间.文件与文件夹.各种数据.流.URLs.mime类

  • python光学仿真PyQt5基础框架教程

    前几天为了自己搞一个光学仿真集成GUI界面,于是去研究了一下PyQt5,不得不说这个模块的使用性远远超过了tkinter,强烈推荐,于是准备出一个专栏,记录一下PyQt5学习中遇到的小问题. 这篇先来说说PyQt5创建时候的基础框架.代码如下: # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets import QMainWindow, QApplication class MainWindow(QMainWindow): def __in

  • Python光学仿真教程实现光线追踪

    目录 光线追迹 几何抽象 光线 线段与圆弧 光线追迹 得益于计算机的计算的能力,通过追踪具有代表性的光线的传播轨迹,可以更加精确地描述光学系统的性能,光线追迹方法也因此大展其能,诸如Zemax.tracepro等软件便都提供了相应的功能. 而建立在折射定律基础之上的光线追迹方法,对数学功底要求较低,所以比较适合作为python初学者的入门项目.在接下来的这一章,希望通过对光线追迹的实现,掌握python中的列表.元组.字典.集合等数据类型的基本概念,并且对面向对象与函数式编程有一个基本的了解.

  • Python光学仿真wxpython透镜演示系统框架

    透镜演示系统 框架 现在,我们可以做一个具备友好界面的透镜演示系统了.我们需要两个圆弧来表示透镜,一条线段表示主光轴,多条线段表示光线的传播路径.此外,还需要对光源和透镜的参数进行调节. 然而值得注意的一点是,我们在进行计算和画图过程中所用到的几何图形,在表达形式以及操作流程上可能并不相同.例如,对于光源发出的一条射线,它与透镜的作用流程为 寻找与透镜前表面的交点A 获取反射和透射直线 寻找透射直线与透镜后表面的交点B 计算透过透镜的直线 然而对于画图程序来说,光源S和A之间有一条线段,A和B之

  • python光学仿真通过菲涅耳公式实现波动模型

    从物理学的机制出发,波动模型相对于光线模型,显然更加接近光的本质:但是从物理学的发展来说,波动光学旨在解决几何光学无法解决的问题,可谓光线模型的一种升级.从编程的角度来说,波动光学在某些情况下可以简单地理解为在光线模型的基础上,引入一个相位项. 波动模型 一般来说,三个特征可以确定空间中的波场:频率.振幅和相位,故光波场可表示为: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import

  • python光学仿真实现光线追迹之空间关系

    目录 空间关系 相交判定 射线排序 线弧关系 点弧关系 空间关系 变化始于相遇,所以交点是一切的核心. 相交判定 首先考察一束光线能否打在某个平面镜上.光线被抽象成了一个列表[a,b,c],平面镜则被抽象成为由两个点构成的线段[(x1,y1),(x2,y2)].两条直线的交点问题属于初等数学范畴,需要先将线段转换成直线的形式,然后再求交点.但是两条直线的交点可能落在线段的外面,从而不具有判定的意义. 如果我们的光学系统中有大量的光学元件,那么如果有一种方法可以快速判断光线是否与光学元件有交点,将

  • python光学仿真相速度和群速度计算理解学习

    目录 波动模型 相速度 群速度 从编程的角度来说,波动光学在某些情况下可以简单地理解为在光线模型的基础上,引入一个相位项. 波动模型 一般来说,三个特征可以确定空间中的波场:频率.振幅和相位,故光波场可表示为: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D z = np.arange(15,200)*10 #单位为nm x = np.arange(15,200)

  • python pillow库的基础使用教程

    知识点 图像模块 (Image.Image) Image模块的功能 Image模块的方法 ImageChops模块 ImageColor模块 基础使用 图像模块 Image.Image 加载图像对象,旋转90度并显示 from PIL import Image #显示图像 im = Image.open('background.jpg') im.show() # 转换图像90度 im.rotate(90).show() 创建缩略图 128x128 from PIL import Image im

  • Python光学仿真wxpython透镜演示系统计算与绘图

    目录 计算与绘图 计算与绘图 这里的计算主要包括两个部分,分别是通过滚动条的参数得到光学器件的特征,这一点此前已经备述.其二则是光在传播过程中所产生的各种行为,反射折射函数也都已经讲过了,需要注意的就是确定边界. def getRay(self): self.rays,self.abcs,self.dots = [[],[],[]] sDot = self.source #光源为第一个点 sRay = rp.getABC(self.sourceDict['theta'],sDot) inPoin

  • Python光学仿真wxpython透镜演示系统初始化与参数调节

    初始化与参数调节面板 这一节将绘制出如下图所示的参数调节面板 对于上图来说,BoxSizer布局十分傻瓜,所以这里主要有两个方面需要注意,其一是opti和source这两个选项卡的实现,其二则是如何同时创建多个滚动条. 对于前者比较容易,无非是多用一个控件而已,即wx.NoteBook,使用方法乏善可陈,看代码即可学会. 对于后者当然也可以很容易,只要无脑罗列即可,只不过对于五个不同的参数就意味着要新建五组滚动条,要就要新建五个控制函数,而这五个控制函数的功能几乎是完全一样的.显然,这很愚蠢,所

  • python光学仿真实现光线追迹折射与反射的实现

    目录 折射与反射 平面反射 平面折射 python实现 弧面问题 折射与反射 光线与光学元件相互作用,无非只有两件事,反射和透射.而就目前看来,我们所常用的光学元件,也无非有两种表面,即平面和球面,二维化之后就简化成了射线与线段,射线与劣弧的关系. 平面反射 无论从哪个角度来看,平面的反射折射都要比球面更简单,而反射问题要比折射问题更简单,所以,我们首先处理平面的反射问题. 反射定律即入射角等于反射角,心念及此,最为循规蹈矩的思路必然是先找到入射光线和平面的夹角,然后用这个夹角和平面(在二维空间

随机推荐