wxPython色环电阻计算器


Posted in Python onNovember 18, 2019

本文实例为大家分享了wxPython色环电阻计算器的具体代码,供大家参考,具体内容如下

import wx # 导入wxPython
class MyFrame(wx.Frame):
 def __init__(self,parent,id):
  wx.Frame.__init__(self, parent, id, "色环电阻计算器2.0",size=(600,450))
  self.panel = wx.Panel(self) # 创建画板(设置程序标题,大小)
  self.font1 = wx.Font(20,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL,faceName="黑体")
  self.font2 = wx.Font(16,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL,faceName="黑体")
  self.choices = ['黑', '棕', '红', '橙', '黄', '绿', '蓝', '紫', '灰', '白', '金', '银']
  self.choices2 = ['黑', '棕', '红', '绿', '蓝', '紫', '灰', '金', '银']
  self.choices3 = ['black','brown','red','coral','yellow','green','blue','purple','grey','white','gold','light grey']
  self.choices4 = ['black','brown','red','green','blue','purple','grey','gold','light grey']
  self.error_code = ['20', '1', '2', '0.5', '0.25', '0.1', '0.05', '5', '10']
  self.IsFive = True
  self.Init_Panel()

 def Init_Panel(self):
  self.Create_display_part()
  self.Create_resistant()
  self.bt_change = wx.Button(self.panel, label='切换为4色环', pos=(400, 250), size=(150, 50))
  self.bt_change.SetFont(self.font2)
  self.bt_change.Bind(wx.EVT_BUTTON, self.Event_Change)
  self.Create_display5()

 def Event_Change(self,event):
  self.radiobox1.Destroy()
  self.radiobox2.Destroy()
  self.radiobox3.Destroy()
  self.radiobox4.Destroy()
  self.colour_1.Destroy()
  self.colour_2.Destroy()
  self.colour_3.Destroy()
  self.colour_4.Destroy()
  if self.IsFive == True:
   self.bt_change.SetLabel('切换为5色环')
   self.radiobox5.Destroy()
   self.colour_5.Destroy()
   self.Create_display4()
   self.IsFive = False
  else:
   self.bt_change.SetLabel('切换为4色环')
   self.Create_display5()
   self.IsFive = True

 def Event_radiobox(self,event):
  self.colour_1.Destroy()
  self.colour_2.Destroy()
  self.colour_3.Destroy()
  self.colour_4.Destroy()
  one = self.radiobox1.GetSelection()
  two = self.radiobox2.GetSelection()
  three = self.radiobox3.GetSelection()
  four = self.radiobox4.GetSelection()
  if self.IsFive == True:
   self.colour_5.Destroy()
   five = self.radiobox5.GetSelection()
   if four > 9:
    temp = 9 - four
   else:
    temp = four
   result = (one * 100 + two * 10 + three) * (pow(10, temp))
   error = self.error_code[five]
   self.display(result, error)
   self.colour_1 = self.Create_Colourbar(200, self.choices3[one])
   self.colour_2 = self.Create_Colourbar(240, self.choices3[two])
   self.colour_3 = self.Create_Colourbar(280, self.choices3[three])
   self.colour_4 = self.Create_Colourbar(320, self.choices3[four])
   self.colour_5 = self.Create_Colourbar(360, self.choices4[five])
  else:
   if three > 8:
    temp = 8 - three
   else:
    temp = three + 1
   result = (one * 10 + two) * (pow(10, temp))
   error = self.error_code[four]
   self.display(result, error)
   self.colour_1 = self.Create_Colourbar(200, self.choices3[one])
   self.colour_2 = self.Create_Colourbar(250, self.choices3[two])
   self.colour_3 = self.Create_Colourbar(300, self.choices3[three + 1])
   self.colour_4 = self.Create_Colourbar(350, self.choices4[four])

 def Create_display_part(self):
  label_resistance = wx.StaticText(self.panel, label="阻值:",pos=(400,25))
  label_error = wx.StaticText(self.panel, label="误差:±",pos=(400,125))
  label_percentage = wx.StaticText(self.panel, label="%",pos=(520,150))
  self.label_ohm = wx.StaticText(self.panel, label="Ω", pos=(520, 50))
  self.text_resistance = wx.TextCtrl(self.panel, value='0.00',pos=(400, 50), style=wx.TE_RIGHT | wx.TE_READONLY)
  self.text_error = wx.TextCtrl(self.panel, value='20',pos=(400, 150), style=wx.TE_RIGHT | wx.TE_READONLY)
  label_resistance.SetFont(self.font2)
  label_error.SetFont(self.font2)
  label_percentage.SetFont(self.font2)
  self.label_ohm.SetFont(self.font2)
  self.text_resistance.SetFont(self.font2)
  self.text_error.SetFont(self.font2)
  self.text_resistance.SetBackgroundColour('white')
  self.text_error.SetBackgroundColour('white')

 def Create_resistant(self):
  body = wx.StaticText(self.panel, pos=(170, 330), size=(240, 50))
  body.SetBackgroundColour('light blue')
  left_pin = wx.StaticText(self.panel, pos=(20, 350), size=(150, 5))
  left_pin.SetBackgroundColour('white')
  right_pin = wx.StaticText(self.panel, pos=(410, 350), size=(150, 5))
  right_pin.SetBackgroundColour('white')

 def Create_display4(self):
  self.radiobox1 = self.Create_radiobox('1',0,self.choices[:-2])
  self.radiobox2 = self.Create_radiobox('2',100, self.choices[:-2])
  self.radiobox3 = self.Create_radiobox('3',200, self.choices[1:])
  self.radiobox4 = self.Create_radiobox('4',300, self.choices2)
  self.colour_1 = self.Create_Colourbar(200,'black')
  self.colour_2 = self.Create_Colourbar(250,'black')
  self.colour_3 = self.Create_Colourbar(300,'brown')
  self.colour_4 = self.Create_Colourbar(350,'black')

 def Create_display5(self):
  self.radiobox1 = self.Create_radiobox('1', 0, self.choices[:-2])
  self.radiobox2 = self.Create_radiobox('2', 75, self.choices[:-2])
  self.radiobox3 = self.Create_radiobox('3', 150, self.choices[:-2])
  self.radiobox4 = self.Create_radiobox('4', 225, self.choices)
  self.radiobox5 = self.Create_radiobox('5', 300, self.choices2)
  self.colour_1 = self.Create_Colourbar(200, 'black')
  self.colour_2 = self.Create_Colourbar(240, 'black')
  self.colour_3 = self.Create_Colourbar(280, 'black')
  self.colour_4 = self.Create_Colourbar(320, 'black')
  self.colour_5 = self.Create_Colourbar(360, 'black')

 def Create_radiobox(self, label_num, abscissa, choices):
  label = '第' + label_num + '位'
  pos = (abscissa,0)
  radiobox = wx.RadioBox(self.panel, -1, label, pos, choices=choices, majorDimension=1)
  radiobox.Bind(wx.EVT_RADIOBOX, self.Event_radiobox)
  return radiobox

 def Create_Colourbar(self,abscissa,colour):
  pos = (abscissa,330)
  colour_bar = wx.StaticText(self.panel,pos=pos, size=(30, 50))
  colour_bar.SetBackgroundColour(colour)
  return colour_bar

 def display(self,a,b):
  if a>=1000000:
   a="%.2f"%(a/1000000)
   self.label_ohm.SetLabel('MΩ')
  elif 1000<=a<=1000000:
   a="%.2f"%(a/1000)
   self.label_ohm.SetLabel('KΩ')
  else:
   a="%.2f"%(a)
   self.label_ohm.SetLabel('Ω')
  self.text_resistance.SetValue(a)
  self.text_error.SetValue(b)

if __name__ =='__main__':
 app = wx.App()
 myframe = MyFrame(None,-1)
 myframe.Show()
 app.MainLoop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现网站注册验证码生成类
Jun 08 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Python(Django)项目与Apache的管理交互的方法
May 16 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python删除csv文件的行列
Apr 06 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 #Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 #Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 #Python
wxPython实现文本框基础组件
Nov 18 #Python
WxPython实现无边框界面
Nov 18 #Python
python中的RSA加密与解密实例解析
Nov 18 #Python
wxpython绘制圆角窗体
Nov 18 #Python
You might like
我的论坛源代码(七)
2006/10/09 PHP
写出高质量的PHP程序
2012/02/04 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
php实现encode64编码类实例
2015/03/24 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
PHP中SESSION过期设置
2021/03/09 PHP
js玩一玩WSH吧
2007/02/23 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
python中字符串前面加r的作用
2015/06/04 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
保安自我鉴定范文
2013/12/08 职场文书
技能竞赛活动方案
2014/02/21 职场文书
道路建设实施方案
2014/03/18 职场文书
公司股东合作协议书
2014/09/14 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
女性健康讲座主持词
2015/07/04 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
高三生物教学反思
2016/02/22 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android