pyqt5 setup

信号与槽

python GUI设计中信号与槽的设计很相似matlab中的回调函数,先触发事件,发送信号,相对应的方法接受信号,执行命令。

qt designer 专用于python界面设计;

控件之间联动:连线至相应的控件

pyqt5 setup_第1张图片

widgets:控件
SIGNAL(“signal”):信号参数,signal就是具体的信号名称
func:槽函数
instance.methodname:从一个已有的类中调用方法
instance.SLOT(“slotSignature”):控制其它控件的槽

setup详解

setup.py文件是我们在每一个要发布的package项目是必须的。通过setup可以简化一些重复性的参数设置工作。

一个好的setup.py文件应该满足setup()函数内的参数都绑定到各自的常量上

import distutils.cmd
import platform
import os
import setuptools.command.build_py
import subprocess
import sys

from setuptools import setup, find_packages
version = "2.0"
description = "STORM microscope control code."
long_description = ""

setup(
    # 包名称,也就是能够通过import name被导入的名字
    name='storm_control',
    version=version,
    description=description,
    long_description=long_description,
    author='Hazen Babcock',
    author_email='hbabcock at fas.harvard.edu',
    url='https://github.com/ZhuangLab/storm-control',

# zip_safe 参数决定包是否作为一个 zip 压缩后的 egg 文件安装,还是作为一个以 .egg 结尾的目录安装。因为有些工具不支持 zip 压缩文件,而且压缩后的包也不方便调试,所以建议将其设为 False,即 zip_safe=False。
    zip_safe=False,
    
    # 打包时需要加入的模块,调用find_packages方法实现,可以实现对各种子包的添加
    packages=find_packages(),

   # 指定包内需要包含的数据文件
    package_data={},
    # 当 include_package_data 为 True 时该选项用于排除部分文件
    exclude_package_data={},
   # 该参数被设置为 True 时自动添加包中受版本控制的数据文件,可替代 package_data
    include_package_data=True,

# 指定依赖的其他包
    requires=[],
# 指定运行 setup.py 文件本身所依赖的包
    setup_requires=[],
    
    tests_require=[],
    
    license="",  
    keywords='storm,microscopy',
    # 参数说明包的分类信息
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Developers',
        'License :: MIT',
        'Programming Language :: C',
        'Programming Language :: Python :: 3',
    ],
)

包含子包的子包
如果有很多子包需要安装,同时子包中有各种子包,用find_packages就能够自动添加完所有的包.
find_packages(“dir”) 的功能是在 “dir” 目录下找所有带有 init.py 的文件夹, 即为package。 如果不指定dir, 那么就在 setup.py 所在的根目录下查找。 为什么我们要指定 NAME 为搜索目录呢? 原因很简单, 因为我们在同一级文件夹下可能有我们自己的一些其他测试文件, 也包含 init.py 文件。 这就有可能被误认为是我们要安装的包。 所以我们只在 NAME 目录下进行搜索, 然后将 NAME 作为前缀添加即可。

egg文件

python中文意思:蟒蛇
egg:(蟒蛇的)蛋
所以egg是一个包含所有包数据的文件包;
理想情况下,egg会是一个使用zip压缩的文件,其中包含了所有需要的包文件,但是在某些情况下,setuptools 会决定(或被开关告知)包不应该是 zip 压缩的。

在这些情况下,egg 只是一个简单的未曾压缩的子目录,但是里面的内容是相同的。

python的egg文件类似于java中的jar文件,是一个工程打包文件,便于安装部署;

setuptools:包管理工具

安装setuptools

try_catch_end

try
    % 尝试执行的语句E
catch
    % 如果E运行错误,
    % 执行catch和end之间的代码块
end

错误

  1. assert _sre.MAGIC == MAGIC, “SRE module mismatch”
    可能是python版本不匹配。如虚拟环境中的python是3.7,但用到了主环境中的python模块

connectSlotsByName

QtCore.QMetaObject.connectSlotsByName(Dialog)
https://www.riverbankcomputing.com/static/Docs/PyQt5/signals_slots.html
#https://doc.qt.io/qt-5/qmetaobject.html#connectSlotsByName

参考链接

  1. http://blog.konghy.cn/2018/04/29/setup-dot-py/

你可能感兴趣的:(硬件)