8266串口调试助手_200行Python代码实现串口调试助手(2) 界面构建

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是串口调试工具pzh-py-com诞生之界面构建

  一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没有清晰的UI界面,那也发挥不出软件的功能,使得用户体会不到软件的优势。今天痞子衡给大家介绍pzh-py-com的界面构建过程。

一、界面设计简图

  在真正进入代码设计pzh-py-com界面前,首先应该在纸上画一个界面草图,确定pzh-py-com界面应该有哪些元素构成,这些元素分别位于界面上什么位置。下面是痞子衡画的pzh-py-com的界面简图,界面主要包括三大部分:接收区、配置区、发送区,接收区用于显示从串口接收到的数据;配置区用于配置串口参数;发送区用于编辑要从串口发送出去的数据。

8b2f3edc27a31481caacdaad123faad4.png

二、界面设计wxPython组件图

  有了pzh-py-com的界面设计简图指导,下一步需要将设计简图解析成如下的wxPython组件图,将简图里的元素转换成wxPython里的真实组件。这一步需要配合查阅wxPython相关手册,了解wxPython有哪些组件。
  有一个地方需要特别提醒的是,wxWrapSizer里的控件是从左到右自上而下排列的,有的时候为了排版,会故意插入一些无效的wxStaticText来占位,下图中便用了4个占位的wxStaticText(浅色框表示)。

662275b8e6afb81e272cc31ea23b3496.png

三、在wxFormBuilder里创作

  有了pzh-py-com的界面设计wxPython组件图,下面便可以在wxFormBuilder里照样子创作出pzh-py-com的真正界面了。关于wxFormBuilder的使用可参考痞子衡另一篇文章 极易上手的可视化wxPython GUI构建工具(wxFormBuilder)。

9eabbbbcc0683ff2c692496336f41a91.png

四、使用生成的Python代码

  将wxFormBuilder生成的python代码保存为win.py文件(其中Frame class名为com_win),并存放于\pzh-py-com\src目录下,此时需要另外新建一个名为main的主函数文件,并放在\pzh-py-com\src目录下。其中main文件内容如下:

import wx
import sys, os
import win

class mainWin(win.com_win):

def clearRecvDisplay( self, event ):
event.Skip()

def openClosePort( self, event ):
event.Skip()

def clearSendDisplay( self, event ):
event.Skip()

def sendData( self, event ):
self.m_textCtrl_recv.Clear()
self.m_textCtrl_recv.SetValue('hello world')

if __name__ == '__main__':
app = wx.App()

main_win = mainWin(None)
main_win.SetTitle(u"JaysPyCOM v0.1.0")
main_win.Show()

app.MainLoop()

  main.py里并没有实现具体功能,只有一个hello world打印的效果,此处只是演示界面已经创建成功,界面运行效果如下:

66b3e5484d00a11c699d7b1ebcd4c847.png

  至此,串口调试工具pzh-py-com诞生之界面构建痞子衡便介绍完毕了,掌声在哪里~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

权限访问控制设计

一、前言 之前的博客一直都还没写到框架的实现及权限系统,今天开始写我的权限系统,我以前做过的项目基本上都有权限管理这个模块,但各个系统都会有一些不太一样,有些简单点,有些稍微复杂一点,一句话&#x…

卸载失败_Windows 10可能的新功能-自动卸载失败的补丁更新

Windows 10作为Windows最新报告,微软正在向Windows 10添加一项新的恢复功能,该功能旨在自动检测更新安装后启动失败的时间。在用户不必做任何事情的情况下,将卸载违规更新,这个操作可以引导系统再次运行。根据在线发布的支持文档&…

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一、CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下: 粒子效果的应用和火焰范例&…

中文格式_常见中文编码格式

中文编码主要有以下四种:GB2312简体中文编码,一个汉字占用2个字节,在大陆是主要的编码方式。当文章/网页中包含繁体中文、日文、韩文等时,这些内容可能无法被正确编码。BIG5繁体中文编码,主要在台湾地区使用。GBK支持简…

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用 一、引言 在移动开发中,通常会用到一些小型的数据库进行数据管理。SQLite是一款十分小巧便捷的数据库,在iOS开发中,原生框架也对其有很好的支持。 二、SQLite常用语句 数据库…

SQL Server之字符串函数

以下所有例子均Studnet表为例: 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student字符串转换为大、小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower(I …

Android通用流行框架大全

Android通用流行框架大全 1. 缓存 名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载 名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库Fresco一个用于管理图像和他们使用的内存的库…

Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...

第六章 快捷方式的最短路径 Windows Shell允许存储任何对象的引用到系统范围内的任何地点。例如,当你从一个文件夹拖拽可执行程序到另一个文件夹时,鼠标自动改变形状给出除拷贝和移动文件之外的第三种选择。 除非你确定,否则可执行文件是不能…

ShowMsg函数妙用

为什么80%的码农都做不了架构师?>>> 在对DedeCMS做2次开发的时候可能提示信息会经常用到,为了方便在此将ShowMsg方法提取出来,使用方法:ShowMsg(“提示信息”,“进行跳转的页面URL”&#xff0…

二进制文件比较

一 工具 使用Araxis Merge类似的工具来比较两个文件夹是否相同,比较两个二进制文件是否相同。1) 比较两个文件夹是否相同,只要有文件的名字不同就认为两个文件夹不相同2) 文件修改为新的名字后,二进制比较时仍与原文件…

土压力图怎么画_电气系统图怎么画?

电气系统图,又称为电气系统控制图,是通过使用国家规定的图形符号和文字代号代表各种电器、电机及元件,根据生产机械的要求和各种电器的原理,用线条代表导线连接起来,用于展示供电线路与各设备工作原理及其相互关系的一…

考勤助手——数据库3.0版本

基于数据库1.0及2.0版本,我们将细节的地方逐一进行讨论,设计出了数据库3.0版本。 根据ER图,进行基本表的设计如下: 转载于:https://www.cnblogs.com/GG-TEN/p/5471019.html

幽灵交易策略_幽灵交易者策略(附源代码)

NO1 . 前言正如幽灵交易者的名字,该策略的核心思路是,在真实下单交易之前,先虚拟出一个交易,如果这个虚拟的交易是亏损的,那么下一次才启动真实的交易。NO2 . 策略简介该策略思路源自于交易者的观察,交易者…

test blog

blogsdf sdfsd转载于:https://blog.51cto.com/11570194/1771304

并行编程——内存模型之缓存一致性

1 定义 缓存一致性 Cache coherence 简称 CC, 缓存一致性协议是在共享缓存多处理器架构确保最终一致性最突出、最重要的机制。这些协议在缓存线(cache-line)级别实现了对一致性的保证。缓存线是从主内存中读取数据和向内存中写入数据的缓存单…

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)

本节通过日志文件详细分析 instance start 操作。下面是 start instance 的流程图向 nova-api 发送请求nova-api 发送消息nova-compute 执行操作下面我们详细讨论每一个步骤。 向 nova-api 发送请求客户(可以是 OpenStack 最终用户,也可以是其他程序&…

失望时想起了你是什么歌_你是空你是空是什么歌 你是风你是风什么歌

“你是空,你是空”“你是风,你是风”“下起雨想起了你”前奏的歌曲最近在抖音受到很多人的喜欢,想要找到完整版歌词作为BGM,这首歌非常的洗脑,你是空你是空是什么歌?你是风什么歌?下面八宝网带来…

ASP.NET MVC从视图传递多个模型到Controller

从后台组织好数据然后传递到页面倒是水到渠成很方便,因为MVC自身就将这样的需求内建到了这个系统中。我只需要在后台组织好一个List 或IEnumerable类型的变量,将需要传递的数据模型扔进去便可。 比如这里我们向视图返回5条product信息在页面进行展示&…

还原virtual函数的本质-----C++

当你每次看到C类中声明一个virtual函数,特别是看到了一个virtual的虚构函数。你知道它的意思吗?你肯定会毫不犹豫的回答:不就是多态么。。。在运行时确定具体的行为么。。。完全正确,但这里我要讲的不只是这些东西。 有些类需要虚…

0511 backlog 项目管理

SCRUM 这次的作业就是确定SCRUM的计划,确定sprint backlog的一个冲刺周期,而这个周期是两个星期。争取在两周内发布1.0版本。 本次作业以网站构建为主: ID NAMEIMPESTHOW TO DONOTES1首页99小时用户登录网站也可以看游客的推广的内容&am…