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 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
python查找目录下指定扩展名的文件实例
Apr 01 Python
python使用itchat实现手机控制电脑
Feb 22 Python
python删除某个字符
Mar 19 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
python实现图片文件批量重命名
Mar 23 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
教你用python控制安卓手机
May 13 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
7个Javascript地图脚本整理
2009/10/20 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
Python中optparse模块使用浅析
2015/01/01 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python多进程fork()函数详解
2019/02/22 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
Python实现Linux监控的方法
2019/05/16 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
python 装饰器重要在哪
2021/02/14 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
2015年父亲节寄语
2015/03/23 职场文书
国家助学金受助感言
2015/08/01 职场文书
医学会议开幕词
2016/03/03 职场文书