viper 软件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
viper/uiconfig/ui_com_setting.py

138 lines
6.1 KiB

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import wx
from myconfig import MyConfig
from myconfig import YAML_FILE_NAME
class UI_Com_Setting(wx.Dialog):
"""
@description : Com 配置
"""
def __init__(self, parent,id):
# 串口页面配置
super(UI_Com_Setting, self).__init__( parent ,id=id )
self.config = MyConfig()
self.InitUI()
self.SetSize((400, 400))
self.SetTitle(" 设置串口参数 ")
def InitUI(self):
self.config_yml = self.config.read_yaml()
# print(self.config_yml['comsetting'])
self.panel = wx.Panel(self)
self.vbox = wx.BoxSizer(wx.VERTICAL)
self.sb = wx.StaticBox(self.panel, label='设置串口')
self.sbs = wx.StaticBoxSizer(self.sb, orient=wx.VERTICAL)
self.hbox1 = wx.BoxSizer(wx.HORIZONTAL)
self.staticText1 = wx.StaticText(self.panel, label='串口号: ',size=(60, -1), style=wx.ALIGN_CENTRE_VERTICAL )
self.textCtrl1 = wx.TextCtrl(self.panel, value="",size=(250,25) )
tmp = self.get_str_from_config("comsetting",'port')
if tmp is not None:
self.textCtrl1.SetValue(tmp)
self.hbox1.Add(self.staticText1, flag=wx.TOP|wx.LEFT, border=5)
self.hbox1.Add(self.textCtrl1, flag=wx.TOP|wx.LEFT, border=5)
self.sbs.Add(self.hbox1, flag=wx.TOP|wx.LEFT, border= 5)
self.hbox2 = wx.BoxSizer(wx.HORIZONTAL)
self.staticText2 = wx.StaticText(self.panel, label='波特率: ' ,size=(60, -1))
# self.staticText2_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
self.textCtrl2 = wx.TextCtrl(self.panel, value="",size=(250,25))
tmp = self.get_str_from_config("comsetting",'baudrate')
if tmp is not None:
self.textCtrl2.SetValue(tmp)
self.hbox2.Add(self.staticText2, flag=wx.TOP|wx.LEFT, border=5)
self.hbox2.Add(self.textCtrl2,flag=wx.TOP|wx.LEFT, border=5)
# self.hbox2.Add(self.staticText2_1, flag=wx.TOP|wx.LEFT, border=5)
self.sbs.Add(self.hbox2, flag=wx.TOP|wx.LEFT, border=5)
self.hbox3 = wx.BoxSizer(wx.HORIZONTAL)
self.staticText3 = wx.StaticText(self.panel, label='数据位: ' ,size=(60, -1))
# self.staticText3_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
self.textCtrl3 = wx.TextCtrl(self.panel, value="",size=(250,25))
tmp = self.get_str_from_config("comsetting",'bytesize')
if tmp is not None:
self.textCtrl3.SetValue(tmp)
self.hbox3.Add(self.staticText3, flag=wx.TOP|wx.LEFT, border=5)
self.hbox3.Add(self.textCtrl3,flag=wx.TOP|wx.LEFT, border=5)
# self.hbox3.Add(self.staticText3_1, flag=wx.TOP|wx.LEFT, border=5)
self.sbs.Add(self.hbox3, flag=wx.TOP|wx.LEFT, border=5)
self.hbox4 = wx.BoxSizer(wx.HORIZONTAL)
self.staticText4 = wx.StaticText(self.panel, label='奇偶性: ' ,size=(60, -1))
# self.staticText3_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
self.textCtrl4 = wx.TextCtrl(self.panel, value="",size=(250,25))
tmp = self.get_str_from_config("comsetting",'parity')
if tmp is not None:
self.textCtrl4.SetValue(tmp)
self.hbox4.Add(self.staticText4, flag=wx.TOP|wx.LEFT, border=5)
self.hbox4.Add(self.textCtrl4,flag=wx.TOP|wx.LEFT, border=5)
self.sbs.Add( self.hbox4, flag=wx.TOP|wx.LEFT, border=5 )
self.hbox5 = wx.BoxSizer(wx.HORIZONTAL)
self.staticText5 = wx.StaticText(self.panel, label='停止位: ' ,size=(60, -1))
# self.staticText3_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
self.textCtrl5 = wx.TextCtrl(self.panel, value="",size=(250,25))
tmp = self.get_str_from_config("comsetting",'stopbit')
if tmp is not None:
self.textCtrl5.SetValue(tmp)
self.hbox5.Add(self.staticText5, flag=wx.TOP|wx.LEFT, border=5)
self.hbox5.Add(self.textCtrl5, flag=wx.TOP|wx.LEFT, border=5)
self.sbs.Add( self.hbox5, flag=wx.TOP|wx.LEFT, border=5 )
self.panel.SetSizer(self.sbs)
self.hbox_0 = wx.BoxSizer(wx.HORIZONTAL)
self.okButton = wx.Button(self, label=u'保存配置')
self.closeButton = wx.Button(self, label='Close')
self.hbox_0.Add(self.okButton)
self.hbox_0.Add(self.closeButton, flag = wx.LEFT, border=5)
# 添加 vbox 到panel
self.vbox.Add(self.panel, proportion=1,
flag=wx.ALL | wx.EXPAND, border=5)
self.vbox.Add(self.hbox_0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10)
self.SetSizer(self.vbox)
self.okButton.Bind(wx.EVT_BUTTON, self.OnSave)
self.closeButton.Bind(wx.EVT_BUTTON, self.OnClose)
def get_str_from_config( self, section, key ):
return str(self.config_yml[section][key])
pass
def set_config_by_section_key_val( self, section, key, val ):
# print(f" {key} current type {type( self.config_yml[section][key] )}")
if type( self.config_yml[section][key] ) == int:
self.config_yml[section][key] = int(val)
elif type( self.config_yml[section][key] ) == float:
self.config_yml[section][key] = float(val)
else:
self.config_yml[section][key] = val
pass
def saveData( self, e ):
pass
def OnClose( self, e ):
self.Destroy()
def OnSave(self, e):
success = True
# 赋值字典,写入文件
self.set_config_by_section_key_val("comsetting", 'port', self.textCtrl1.GetValue( ))
self.set_config_by_section_key_val("comsetting", 'baudrate', self.textCtrl2.GetValue( ))
self.set_config_by_section_key_val("comsetting", 'bytesize', self.textCtrl3.GetValue( ))
self.set_config_by_section_key_val("comsetting", 'parity', self.textCtrl4.GetValue( ))
self.set_config_by_section_key_val("comsetting", 'stopbit', self.textCtrl5.GetValue( ))
self.config.write_yaml(self.config_yml)
del self.config
if success:
self.EndModal(wx.ID_OK)