200行Python代码实现串口调试助手之界面构建

liftword2个月前 (02-16)技术文章27

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

一、界面设计简图

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

二、界面设计 wxPython组件图

有了 pzh-py-com 的界面设计简图指导,下一步需要将设计简图解析成如下的 wxPython 组件图,将简图里的元素转换成 wxPython 里的真实组件。这一步需要配合查阅 wxPython 相关手册,了解 wxPython 有哪些组件。

有一个地方需要特别提醒的是,wxWrapSizer 里的控件是从左到右自上而下排列的,有的时候为了排版,会故意插入一些无效的 wxStaticText 来占位,下图中便用了 4 个占位的 wxStaticText(浅色框表示)。

三、在 wxFormBuilder 里创作

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

四、使用生成的 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 打印的效果,此处只是演示界面已经创建成功,界面运行效果如下:

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

相关文章

十个顶级Python 图形界面(GUI)框架供你选择

你知道嘛由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专...

Python GUI教程(十):创建一个复杂的GUI

本篇将会涉及: 构建一个更加复制的GUI在选项卡部件中应用多个层级添加一个树部件和一个日历部件使用一个刻度盘部件来控制一个LCD显示器部件上的数字连接刻度盘部件和LCD部件到一个单选按钮上使用一个单选...

Python大佬手把手教你用wxPython模块编写界面程序

wxPython是一个开发桌面端图形界面的跨平台函数库,开发语言为Python,它是基于C++的函数库wxWidgets的封装。私信小编01即可获取Python学习资料wxpython有大量组件,它们...

亲身体验 FastUI:用 Python 快速构建美观的用户界面

最近,我有幸接触到一个非常有趣的 Python 库 FastUI,它是一个简单但强大的框架,可以帮助我们快速构建用户界面(UI)。作为一名 Python 开发者,UI 开发一直让我有点头疼,特别是当需...

Python界面开发库大全_python 界面库哪个好

curses内建的 ncurses 封装,用来创建终端图形用户界面。curses 库为基于文本的终端提供了独立于终端的屏幕绘制和键盘处理功能,在普遍使用图形显示界面的现在,在一些小众市场,例如嵌入式U...