对Python简单串口收发GUI界面的实例详解

  

忙活了三个多小时,连学带做,总算是搞出来了一个具有基本功能的串口通信PC机的GUI界面,Tkinter在python中,确实很好用,而且代码量确实也很少,不足的是Tkinter不自带combox,但是幸运的是我下载的2.7版本自带了包含有combox的ttk模块,于是乎问题就顺利解决了。

  

下面是源代码,一些错误提示功能还没有做,目前只是简单地实现了下位机与电脑的通信界面,下位机还是用的STM32F103
  

        #=utf - 8编码   __author__='自由'      从Tkinter进口*   从串行进口*   进口ttk      类GUI(帧):   def __init__(自我,掌握):=帧(主)   frame.pack ()   #串口设置相关变量   自我。端口=0   自我。波特率=9600   #串口号提示   自我。lab1=标签(框、文本=靶蛄泻拧?   self.lab1。网格(行=0,列=0,粘性=W)   #串口号选择下拉菜单   自我。boxValue=https://www.yisu.com/zixun/StringVar ()   自我。boxChoice=ttk。组合框(框架、textvariable=自我。boxValue状态=爸欢痢?   自我。boxChoice(“价值”)=(“COM1”、“COM2”、“COM3”,“COM4为”)   self.boxChoice.current (0)   self.boxChoice.bind (' & lt; & lt; ComboboxSelected>祝辞,self.Choice)   self.boxChoice。网格(行=1,列=0,粘性=W)   #波特率选择提示   自我。lab2=标签(框、文本=波特率设置的)   self.lab2。网格(行=2,列=0,粘性=W)   #波特率选择下拉菜单   自我。boxValueBaudrate=IntVar ()   自我。BaudrateChoice=ttk。组合框(框架、textvariable=自我。boxValueBaudrate状态=爸欢痢?   自我。BaudrateChoice(“价值”)=(9600、115200)   self.BaudrateChoice.current (0)   self.BaudrateChoice.bind (' & lt; & lt; ComboboxSelected>祝辞,self.ChoiceBaudrate)   self.BaudrateChoice。网格(行=3,列=0,粘性=W)   #输出框提示   自我。lab3=标签(框、文本=消息显示)   self.lab3。网格(行=0,列=1,粘性=W)   #输出框   自我。显示=文本(框架、宽度=40岁,身高=5,包装=词)   self.show。网格(行=1,列=1,行宽=4,粘性=W)   #输入框提示   自我。lab4=标签(框、文本='请在这里输入!”)   self.lab4。网格(=5行,=1,列粘性=W)   #输入框   自我。输入=条目(框架、宽度=40)   self.input。网格(=6行,=1,列行宽=4,粘性=W)   #输入按钮   自我。button1=按钮(框、文本=笆淙搿?命令=self.Submit)   self.button1。网格(行=11,列=1,粘性=E)   #串口开启按钮   自我。button2=按钮(框架、文本=按蚩凇泵?self.open)   self.button2。网格(行=7,列=0,粘性=W)   #串口关闭按钮   自我。button3=按钮(框、文本=关闭串口,命令=self.close)   self.button3。网格(=10行,列=0,粘性=W)   #串口信息提示框   自我。showSerial=文本(框架、宽=20,高=2,包装=词)   self.showSerial。网格(行=12,列=0,粘性=W)   #串口初始化配置   自我。ser=串行()   self.ser.setPort (self.port)   # self.ser.setBaudrate (self.baudrate)   # self.ser.open ()   #打印self.ser.isOpen ()   #打印self.ser   def选择(自我、事件):   上下文=self.boxValue.get ()   列表=[“COM1”、“COM2”,“COM3”,“COM4为”)   如果上下文列表:   自我。端口=list.index(上下文)   self.ser.setPort (self.port)   打印self.port   def ChoiceBaudrate(自我、事件):   自我。波特率=self.boxValueBaudrate.get ()   self.ser.setBaudrate (self.baudrate)   打印self.baudrate   def提交(自我):   context1=self.input.get ()   n=self.ser.write (context1)   输出=self.ser.read (n)   打印输出   self.show.delete (0.0)   self.show.insert(0.0,输出)   def开放(自我):   self.ser.open ()   如果self.ser.isOpen ()==True:   self.showSerial.delete (0.0)   self.showSerial.insert(0.0,“连续开错了!”)   def关闭(自我):   self.ser.close ()   如果self.ser.isOpen ()==False:   self.showSerial.delete (0.0)   self.showSerial.insert(0.0,“连环已经关闭!”)   根=Tk ()   根。标题(“连环GUI”)   # root.geometry (“3000 x4000”)   应用=GUI(根)   root.mainloop ()   之前      

以上这篇对Python简单串口收发GUI界面的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

对Python简单串口收发GUI界面的实例详解