#!/usr/bin/env python # Conversor de Temperatura # por Rudson Alves import pygtk pygtk.require('2.0') import gtk def calc_Fahrenheit(temp): return round(9.*temp/5. + 32.,2) def calc_Celsius(temp): return round(5.*(temp - 32.)/9.,2) # Classe TempConv class TempConv: def change_focus(self, widget, event, Temp_out): if event.keyval == 65293: Temp_out.grab_focus() def calcule_temp(self, widget, event, Temp_out): name = widget.get_name() temp = float(widget.get_text()) if name == 'Temp_C': Temp_out.set_text('%0.2f' % calc_Fahrenheit(temp)) else: Temp_out.set_text('%0.2f' % calc_Celsius(temp)) def __init__(self): win_main = gtk.Window(gtk.WINDOW_TOPLEVEL) win_main.set_position(gtk.WIN_POS_CENTER) win_main.set_title('TempConv') win_main.set_border_width(10) win_main.connect('destroy', gtk.main_quit) vbox = gtk.VBox(False, 0) win_main.add(vbox) Temp_C = gtk.Entry() Temp_F = gtk.Entry() Temp_C.set_name('Temp_C') Temp_F.set_name('Temp_F') Temp_C.set_text('0.00') Temp_F.set_text('32.00') Temp_C.set_size_request(60,23) Temp_F.set_size_request(60,23) Label_C = gtk.Label("Celsius") Label_F = gtk.Label("Fahrenheit") hbox = gtk.HBox(True, 0) hbox.pack_start(Label_C, False, False, 3) hbox.pack_start(Temp_C, False, False, 3) vbox.pack_start(hbox, True, True, 0) hbox = gtk.HBox(True, 0) hbox.pack_start(Label_F, False, False, 3) hbox.pack_start(Temp_F, False, False, 3) vbox.pack_start(hbox, True, True, 0) Close_button = gtk.Button("Close") hbox = gtk.HBox(False, 0) hbox.pack_start(Close_button, True, True, 5) vbox.pack_start(hbox, False, False, 5) Close_button.connect("clicked", gtk.main_quit) Temp_C.connect("focus-out-event", self.calcule_temp, Temp_F) Temp_F.connect("focus-out-event", self.calcule_temp, Temp_C) Temp_C.connect("key-press-event", self.change_focus, Temp_F) Temp_F.connect("key-press-event", self.change_focus, Temp_C) win_main.show_all() def main(): gtk.main() return 0 if __name__ == "__main__": TempConv() main()