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中字典的基本知识初步介绍
May 21 Python
python实现中文转换url编码的方法
Jun 14 Python
详解python中的文件与目录操作
Jul 11 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
python计算n的阶乘的方法代码
Oct 25 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python 实现日志同时输出到屏幕和文件
Feb 19 Python
python实现信号时域统计特征提取代码
Feb 26 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
vue中appear的用法
2017/08/17 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
详细解读Python中解析XML数据的方法
2015/10/15 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
大专生简历的自我评价
2013/11/26 职场文书
出国考察邀请函
2014/01/21 职场文书
新年联欢会主持词
2014/03/27 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
义卖募捐活动总结
2015/05/09 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android