用python画一个地球_用python做一个地球围绕太阳转的图形

匿名用户

1级

2017-07-21 回答

平台: python2.7.10 + wxpython 3.0.2

#!/usr/bin/env python

#-*- coding: utf-8 -*-

from __future__ import unicode_literals

import wx

__version__ = '0.1'

app_title = 'Temperature Translator - {}'.format(__version__)

class TempTranslator(wx.Frame):

def __init__(self, parent=None, size=(620, 200), title=app_title):

super(TempTranslator, self).__init__(parent, size=size, title=title)

self.SetMinSize(self.GetSize())

self.panel = wx.Panel(self)

self.init_layout()

self.panel.Layout()

self.Centre(wx.BOTH)

self.Show()

def init_layout(self):

font = self.GetFont()

font.SetWeight(wx.BOLD)

font.SetPointSize(15)

self.panel.SetFont(font)

vbox = wx.BoxSizer(wx.VERTICAL)

self.add_label(vbox, f2c=True)

self.f_tc1, self.c_tc1 = self.add_input(vbox, f2c=True)

self.f_tc1.Bind(wx.EVT_TEXT, self.on_f_text)

line = wx.StaticLine(self.panel, -1, style=wx.LI_HORIZONTAL)

style = wx.GROW | wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.TOP

vbox.Add(line, 0, style, 5)

self.add_label(vbox, f2c=False)

self.c_tc2, self.f_tc2 = self.add_input(vbox, f2c=False)

self.c_tc2.Bind(wx.EVT_TEXT, self.on_c_text)

self.panel.SetSizer(vbox)

def add_label(self, vbox, f2c=True):

if f2c:

text1 = 'Fahrenheit'

text2 = 'Celsius'

else:

text1 = 'Celsius'

text2 = 'Fahrenheit'

hbox = wx.BoxSizer(wx.HORIZONTAL)

label = wx.StaticText(self.panel, -1, text1, size=(-1, 30),

style=wx.ALIGN_CENTER)

hbox.Add(label, 1, wx.EXPAND, 10)

label = wx.StaticText(self.panel, -1, text2, size=(-1, 30),

style=wx.ALIGN_CENTER)

hbox.Add(label, 1, wx.EXPAND, 10)

vbox.Add(hbox, 0, wx.EXPAND, 10)

def add_input(self, vbox, f2c=True):

hbox = wx.BoxSizer(wx.HORIZONTAL)

tc1 = wx.TextCtrl(self.panel, -1, size=(260, 40), style=wx.TE_CENTER)

tc1.Bind(wx.EVT_TEXT, self.on_f_text)

label = wx.StaticText(self.panel, -1, ' = ')

tc2 = wx.TextCtrl(self.panel, -1, size=(260, 40), style=wx.TE_CENTER)

hbox.Add(tc1, 1, wx.EXPAND, 10)

hbox.Add(label, 0, wx.ALL | wx.EXPAND, 10)

hbox.Add(tc2, 1, wx.EXPAND, 10)

vbox.Add(hbox, 1, wx.EXPAND, 10)

return tc1, tc2

def on_f_text(self, evt):

f = self.f_tc1.GetValue()

self.c_tc1.SetValue('{}'.format(self.f2c(f)))

def on_c_text(self, evt):

c = self.c_tc2.GetValue()

self.f_tc2.SetValue('{}'.format(self.c2f(c)))

def f2c(self, f):

return (float(f) - 32) / 1.8 if f else ''

def c2f(self, c):

return float(c) * 1.8 + 32 if c else ''

if __name__ == '__main__':

app = wx.App()

TempTranslator()

app.MainLoop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值