使用PyCharm开发功能模块

1. UI文件转成Python文件

打开PyCharm,创建工程目录,默认目录为C:\Users\Administrator\PycharmProjects\ElectricCurtain,在该目录下创建libs文件夹,将Qt Designer保存的UI文件拷贝到工程目录中,这里默认的文件名为ElectricCurtainUI.ui。

右键选择ElectricCurtainUI.ui 找到External Tool 选择PyUIC,之后会在文件的同级目录下生成ElectricCurtainUI.py文件

同样将Qt Designer中引用的APPResources.qrc文件以及images文件夹以及拷贝到libs中,右键APPResources.qrc文件选择ExternalTools下的PYRCC按钮,之后会在libs文件夹中生成APPResources_rc.py文件。

双击打开ElectricCurtainUI.py文件,修改最下方的import APPResources_rc代码为import libs.APPResources_rc

2. Main.py文件创建及UI加载

在Project窗口中右键New一个Python脚本,取名为Main,作为Demo的主程序入口。

在Main.py文件中首先通过from libs.ElectricCurtainUI import Ui_MainWindow引入上文生成的ui模块,之后定义了MyApp类,该类继承了QtGui.QMainWindow, Ui_MainWindow,在MyApp的__init__方法中分别实现了QMainWindow以及Ui_MainWindow的初始化工作。

之后在Main.py文件中添加了如下代码作为Demo的程序入口。

通过window的cmd程序 输入python 加上Main.py的文件路径即可运行程序,在Debian系统终端中输入python3加上Main.py的文件路径运行程序。

在Main.py中定义了UI相关的事件逻辑,包括窗帘滑块、四个按钮以及提示框的事件处理。

3. Curtain模块

在PyCharm中创建CurtainManager.py文件,文件中定义Curtain类,实现了窗帘移动相关的方法逻辑,包括窗帘的重置、打开、关闭以及停止移动四个动作。定义了四个动作的相关回调方法,在Main.py文件中,通过import libs.CurtainManager引入了Curtain类,并在MyApp类中实现了窗帘四个动作的回调方法,并在__init__方法定义了Curtain对象,并注册了回调方法。


4. IO模块

由于Demo客户端是通过在系统文件中通过读写数值的方式操作窗帘执行动作,因此创建了IOManager.py文件作为Demo的IO管理,在文件中定义了IOMgr,提供了写入和读取两个方法。

在Main.py中定义了ioMgr变量保存了IO管理类实例, self._ioMgr = libs.IOManager.IOMgr(),在Curtain类中使用了_ioMgr变量来实现操作窗帘的功能。

5. Time模块

在Demo中需要监听系统的运行时间,因此创建TimeManager.py文件,定义TimeMgr类,提供获取系统时间以及时间戳的方法。

6. AppData模块

创建AppDataManager.py文件用来保存Demo程序中的数据,包括UI文字、提示文字以及窗帘相关的数据。


在高通410c开发板使用PyQt开发电动窗帘Demo(五)相关推荐

  1. 基于高通410c开发板,开发android端家庭控制中心APP(1)

    家庭控制中心APP运行在android端,通过与服务器通讯控制高通410c开发板. 基本功能如下: 1. 应用分为三个功能模块,包括电动窗帘.智能照明以及烟雾模块. 2. 电动窗帘模块中,包括调整窗帘 ...

  2. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十五)驱动程序基石

    文章目录 1.1 休眠与唤醒 1.1.1 适用场景 1.1.2 内核函数 1.1.2.1 休眠函数 1.1.2.2 唤醒函数 19.1.3 驱动框架 1.1.4 编程 1.1.4.1 驱动程序关键代码 ...

  3. 【开源STC15开发板】STC15F2K60S2开发板

    [开源STC15开发板]STC15F2K60S2开发板 2022-7-6 补充说明: STC15系列单片机最多有62个I/0口(如64-pin单片机):P0.0 ~ P0.7,P1.0-Pl.7,P2 ...

  4. ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备

    文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...

  5. 【STC32G12K128开发板】——STC32G12K128开发板介绍

    版权声明:本文为博主原创文章,转载请附上原文出处链接. 文章目录 前言 一.STC32G12K128系列单片机介绍 二.STC32G12K128开发板概述 三.STC32G12K128开发板硬件框图 ...

  6. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动

    文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...

  7. android开发板那种好,学嵌入式用哪个开发板好?嵌入式开发板推荐

    学习嵌入式,必不可少的工具就是一块开发板.对新手而言,学嵌入式用哪个开发板好,下面为大家推荐一款比较好的嵌入式开发板. 嵌入式开发板要推荐的是:fs4412开发板,是当前前沿的ARM Cortex-A ...

  8. 基于stm32mp157 linux开发板ARM裸机开发教程4:Cortex-A7 内核存储系统与流水线(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

  9. 基于stm32mp157 linux开发板ARM裸机开发教程3:Cortex-A7 架构与工作模式(连载中)

    前言: 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中,使其内容更加丰富,讲解更加细致,全文所使用的开发平台均为华清远见FS-MP1A开发板(STM32MP157开发板) ...

最新文章

  1. 近期必读的6篇NeurIPS 2019零样本学习论文
  2. Java SE 第十六讲----面向对象特征之继承
  3. mysql innodb 排他锁_MySQL 针对 InnoDB 引擎锁的种类:行锁(共享锁和排他锁)和表锁(意向共享锁和意向排他锁)...
  4. QT中Widget去除系统提供工具以及系统默认边框
  5. [云炬创业基础笔记]盈利构造
  6. Chrome 下input的默认样式
  7. 大数据发展历程及技术选型
  8. MySQL -- binlog 操作与恢复
  9. 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)
  10. @程序员,你处在食物链哪级?有人跑车游轮到处玩,有人被房价羞辱,被平庸折磨...
  11. C#基础List与ArrayList
  12. Python常用软件包,python使用的软件
  13. 小牛的net程序开发之路
  14. 2023华东师范大学计算机考研信息汇总
  15. 桌面图标变白,任务栏图标变白
  16. Qt 6.2的下载和安装
  17. linux 终端 reboot,讲解Linux基础命令之:man、reboot
  18. 19款最好用的免费数据挖掘工具大汇总
  19. mysql mtq_第十六节:Mysql中的关键字
  20. 对待金融创新,央行应持更开明态度

热门文章

  1. CSS制作大风车动画及花朵
  2. 中国各省、自治区的名字来历
  3. 【7.0】 数学建模 | 相关系数详解 | Person相关系数、Spearman相关系数
  4. ESD镜像文件转换成ISO镜像文件解决方案
  5. ESD-CAN安装调试笔记
  6. suma++ TensorRT Not Found
  7. 早期RA获超声缓解的基线预测因素
  8. 计算机代码rsi是什么意思,RSI指标计算(修正版)
  9. 企业即时通讯软件给企业带来的价值
  10. Yeoman学习-yo篇