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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
一些Python中的二维数组的操作方法
May 02 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python3之简单搭建自带服务器的实例讲解
Jun 04 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
Python 读取位于包中的数据文件
Aug 07 Python
详解python 内存优化
Aug 17 Python
python 使用建议与技巧分享(四)
Aug 18 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
解决GD中文乱码问题
2007/02/14 PHP
Admin generator, filters and I18n
2011/10/06 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
解析php中反射的应用
2013/06/18 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
bootstrap table使用入门基本用法
2017/05/24 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
诉讼财产保全担保书
2014/05/20 职场文书
师德师风个人整改措施
2014/10/27 职场文书
年度考核个人总结
2015/03/06 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA