def __init__ (self): gtk.Window.__init__ (self) self.set_title (_("Importa/Esporta Database")) utils.set_icon (self) self.connect ('delete-event', self.exit) vbox = gtk.VBox() vbox.set_spacing(4) vbox.set_border_width(4) tbl = gtk.Table(2, 4) tbl.set_border_width(4) tbl.set_row_spacings(4) self.ver_sette = sette = gtk.RadioButton (None, _("Versione 0.8")) self.ver_otto = otto = gtk.RadioButton (sette, _("Versione attuale")) tbl.attach(utils.new_label(_("Importa:")), 0, 1, 0, 1, xpadding=8) tbl.attach(utils.new_label(_("Esporta:")), 0, 1, 1, 2, xpadding=8) self.importa_db = DbEntry () self.esporta_db = DbEntryOut () tbl.attach(self.importa_db, 1, 2, 0, 1) tbl.attach(self.esporta_db, 1, 2, 1, 2) frame = gtk.Frame ("Vecchia versione:") vbox = gtk.VBox(2, False) self.ver_sette = sette = gtk.RadioButton (None, _("Versione 0.8")) self.ver_otto = otto = gtk.RadioButton (sette, _("Versione attuale")) vbox.pack_start (sette, False, False, 0) vbox.pack_start (otto, False, False, 0) frame.add(vbox) tbl.attach(frame, 0, 2, 2, 3) bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) btn = gtk.Button(stock=gtk.STOCK_OK) btn.connect('clicked', self.on_ok) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_CANCEL) btn.connect('clicked', self.on_cancel) bb.pack_start(btn) tbl.attach (bb, 0, 2, 3, 4, ypadding=4) self.add (tbl) self.set_resizable (False) self.show_all ()
def _prepare_widgets (self, n_row, n_col, cols): """ Crea e alloca i widget per il controllo delle colonne in una tabella che viene ritornata """ e_tbl = gtk.Table (n_row, n_col) e_tbl.set_border_width (4) e_tbl.set_col_spacings (8) x, y = 0, 0 for name in cols: # Se superiamo il limite ci spostiamo sull'altra colonna e resettiamo x idx = cols.index (name) tmp = self.vars[idx] #print "Creating e_%s%d at %d %d %d %d" % (name[:5], self.editing, x, x+1, y, y+1) #self.__dict__ ["e_" + name [:5] + str (self.editing)] = tmp e_tbl.attach (tmp, x+1, x+2, y, y+1) e_tbl.attach (utils.new_label (name, x=0, y=0.5), x, x+1, y, y+1, yoptions=gtk.SHRINK) if idx == n_col: x += 2; y = 0 else: y += 1 return e_tbl
def create_gui (self): # Qui viene costruita la gui vbox = gtk.VBox() vbox.set_spacing(4) vbox.set_border_width(4) tbl = gtk.Table(2, 4) tbl.set_border_width(4) tbl.set_row_spacings(4) tbl.attach(utils.new_label(_('Inserisci')), 0, 1, 0, 1, xoptions=gtk.SHRINK) self.importa_db = DbEntry () tbl.attach(self.importa_db, 2, 3, 0, 1, xoptions=gtk.SHRINK) bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) btn = gtk.Button(stock=gtk.STOCK_OK) btn.connect('clicked', self.updatedb) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_CANCEL) btn.connect('clicked', self.exit) bb.pack_start(btn) tbl.attach (bb, 0, 2, 3, 4, ypadding=4) self.add (tbl)
def __init__ (self, legend=False): gtk.ScrolledWindow.__init__ (self) self.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.legend = legend tbl = gtk.Table (4, 2, False) self.menu = gtk.Menu () for y in utils.get ('select * from vasca'): self.menu.append (gtk.CheckMenuItem (y[3])) al = gtk.Alignment(0, 0.5) btn = gtk.Button() btn.set_relief (gtk.RELIEF_NONE) hb = gtk.HBox (0, False) hb.add (gtk.Arrow (gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_IN)) hb.add (gtk.Label (_("Selezione Vasche"))) btn.add (hb) al.add (btn) btn.connect ('button_press_event', self.on_popup) bb = gtk.HButtonBox () bb.set_layout (gtk.BUTTONBOX_EDGE) button = utils.new_button (_("Plot"), gtk.STOCK_ZOOM_IN) button.connect ('clicked', self.on_plot) bb.pack_start (button) self.m_box = gtk.VBox (False, 2) self.checks = [] labels = (_('Ph'), _('Kh'), _('Gh'), _('No2'), _('No3'), _('Conducibilita\''), _('Ammoniaca'), _('Ferro'), _('Rame'), _('Fosfati'), _('Calcio'), _('Magnesio'), _('Densita\'')) x = 1 funny_toggle = False for i in labels: widg = gtk.CheckButton (i) self.checks.append (widg) if not funny_toggle: tbl.attach (widg, 1, 2, x, x+1) x += 1 else: tbl.attach (widg, 0, 1, x, x+1) funny_toggle = not funny_toggle tbl.attach (utils.new_label (_("Vasca:")), 0, 1, 0, 1) tbl.attach (utils.new_label (_("Valori:")), 0, 1, 1, 2) tbl.attach (al, 1, 2, 0, 1) tbl.attach (bb, 0, 2, x, x+1) self.add_with_viewport (tbl) self.show_all ()
def create_gui(self): box = gtk.VBox() # box.set_spacing(4) # box.set_border_width(4) # I due frame f1 = gtk.Frame(_("Menu")) f2 = gtk.Frame(_("Tipo")) # Pacchiamoli... box.pack_start(f1, False, False, 0) box.pack_start(f2, False, False, 0) ## creo il combo per il tipo del database self.cmb = utils.Combo() self.cmb.append_text(_("Pesci Dolce")) self.cmb.append_text(_("Piante Dolce")) self.cmb.append_text(_("Invertebrati Dolce")) self.cmb.append_text(_("Pesci Marino")) self.cmb.append_text(_("Piante Marino")) self.cmb.append_text(_("Invertebrati Marino")) self.cmb.set_active(0) self.cmb.connect("changed", self._on_change_view) # creo la prima tabella che contiene il combo tbl = gtk.Table(1, 2) tbl.set_border_width(5) tbl.attach(self.cmb, 0, 1, 0, 1, yoptions=gtk.SHRINK) # creo i notebook self.notebook = gtk.Notebook() # self.notebook.set_show_tabs(False) # self.notebook.set_show_border(False) ## inizio a creare il primo tab che conterra i pesci dolce tbl1 = gtk.Table(2, 8) tbl1.attach(utils.new_label(_("Nome 1:")), 0, 1, 0, 1) self.nome_pesci_dolce = gtk.Entry() tbl1.attach(self.nome_pesci_dolce, 1, 2, 0, 1) box1 = gtk.VBox() box1.pack_start(tbl1, False, False, 0) self.notebook.append_page(box1, None) ## secondo tab per la tabella piante dolce tbl2 = gtk.Table(2, 8) tbl2.attach(utils.new_label(_("Nome 2:")), 0, 1, 0, 1) self.nome_piante_dolce = gtk.Entry() tbl2.attach(self.nome_piante_dolce, 1, 2, 0, 1) box2 = gtk.VBox() box2.pack_start(tbl2, False, False, 0) self.notebook.append_page(box2, None) ## terzo tab tabella invertebrati dolce tbl3 = gtk.Table(2, 8) tbl3.attach(utils.new_label(_("Nome 3:")), 0, 1, 0, 1) self.nome_piante_dolce = gtk.Entry() tbl3.attach(self.nome_piante_dolce, 1, 2, 0, 1) box3 = gtk.VBox() box3.pack_start(tbl3, False, False, 0) self.notebook.append_page(box3, None) ## quarto tab tabella pesci marino tbl4 = gtk.Table(2, 8) tbl4.attach(utils.new_label(_("Nome 4:")), 0, 1, 0, 1) self.nome_piante_dolce = gtk.Entry() tbl4.attach(self.nome_piante_dolce, 1, 2, 0, 1) box4 = gtk.VBox() box4.pack_start(tbl4, False, False, 0) self.notebook.append_page(box4, None) ## quinto tab piante marino tbl5 = gtk.Table(2, 8) tbl5.attach(utils.new_label(_("Nome 5:")), 0, 1, 0, 1) self.nome_piante_dolce = gtk.Entry() tbl5.attach(self.nome_piante_dolce, 1, 2, 0, 1) box5 = gtk.VBox() box5.pack_start(tbl5, False, False, 0) self.notebook.append_page(box5, None) ## sesto tab invertebrati marino tbl6 = gtk.Table(2, 8) tbl6.attach(utils.new_label(_("Nome 6:")), 0, 1, 0, 1) self.nome_piante_dolce = gtk.Entry() tbl6.attach(self.nome_piante_dolce, 1, 2, 0, 1) box6 = gtk.VBox() box6.pack_start(tbl6, False, False, 0) self.notebook.append_page(box6, None) # unisco il tutto...... f1.add(tbl) f2.add(self.notebook) self.connect("delete_event", self.exit) self.add(box)
def __init__(self, n_row, n_col, cols, widgets, lst_store): assert len(cols) - 1 == len(widgets) # Inizializziamo la finestra gtk.Window.__init__(self) self.vbox = gtk.VBox() # Creiamo la store e la view self.store = lst_store self.view = gtk.TreeView(self.store) self.last = len(cols) + 1 self.vars = widgets # Callback per la selection self.view.get_selection().connect("changed", self.on_selection_changed) self.view.connect("row-activated", self.on_row_activated) # for i in range(len(cols)-1): # print cols[i+1], widgets[i], lst_store.get_column_type(i+1) # Le Colonne .. renderer = gtk.CellRendererText() pix_rend = gtk.CellRendererPixbuf() # i nomi sono in cols for name in cols: id = cols.index(name) # print "Adding %d" % id if self.store.get_column_type(id) == gobject.TYPE_DOUBLE: self.view.insert_column_with_data_func(-1, name, renderer, self.float_func, id) else: col = None if self.store.get_column_type(id).pytype == gtk.gdk.Pixbuf: col = gtk.TreeViewColumn(name, pix_rend, pixbuf=id) self.last -= 1 else: col = gtk.TreeViewColumn(name, renderer, text=id) col.set_sort_column_id(id + 1) col.set_clickable(True) col.set_resizable(True) self.view.append_column(col) # print "Pixmap init at %d" % self.last # La ScrolledWindow self.sw = gtk.ScrolledWindow() self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.sw.set_shadow_type(gtk.SHADOW_ETCHED_IN) # Pacchiamo self.sw.add(self.view) self.vbox.pack_start(self.sw) # La ButtonBox per le modifiche self.button_box = bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) btn = gtk.Button(stock=gtk.STOCK_ADD) btn.set_relief(gtk.RELIEF_NONE) btn.connect("clicked", self.on_add) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_REFRESH) btn.set_relief(gtk.RELIEF_NONE) btn.connect("clicked", self.on_refresh) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_REMOVE) btn.set_relief(gtk.RELIEF_NONE) btn.connect("clicked", self.on_remove) bb.pack_start(btn) self.vbox.pack_start(bb, False, False, 0) # Creiamo la zona editing edt_frame = gtk.Frame("Editing:") edt_frame.set_shadow_type(gtk.SHADOW_ETCHED_IN) self.vbox.pack_start(edt_frame, False, False, 0) # Eliminiamo la colonna id che nn ci serve cols.remove(cols[0]) # Andiamo a creare la table per l'editing self.table = e_tbl = gtk.Table(n_row, n_col) self.table.set_border_width(4) self.table.set_col_spacings(8) x, y = 0, 0 for name in cols: # Se superiamo il limite ci spostiamo sull'altra colonna e resettiamo x idx = cols.index(name) tmp = self.vars[idx] # print "Creating e_%s at %d %d %d %d" % (name[:5], x, x+1, y, y+1) self.__dict__["e_" + name[:5]] = tmp e_tbl.attach(tmp, x + 1, x + 2, y, y + 1) e_tbl.attach(utils.new_label(name, x=0, y=0.5), x, x + 1, y, y + 1) if idx == n_col: x += 2 y = 0 else: y += 1 edt_frame.add(e_tbl) # Aggiungiamo la StatusBar self.status = gtk.Statusbar() self.image = gtk.Image() hbox = gtk.HBox() hbox.pack_start(self.image, False, False) hbox.pack_start(self.status) self.vbox.pack_start(hbox, False, False, 0) self.add(self.vbox) self.show_all() self.image.hide() self.timeoutid = None self.connect("delete-event", self.on_delete_event)
def __init__(self): gtk.Window.__init__(self) self.set_title(_("Calcoli")) self.set_resizable(False) utils.set_icon (self) vbox = gtk.VBox() vbox.set_spacing(4) vbox.set_border_width(4) # I due frame f1 = gtk.Frame(_('Valori')); f2 = gtk.Frame(_('Risultati')) # Pacchiamoli... vbox.pack_start(f1, False, False, 0) vbox.pack_start(f2, False, False, 0) # Tabella per i valori tbl_valori = gtk.Table(3, 2) tbl_valori.set_border_width(4) tbl_valori.set_row_spacings(4) # Le varie label tbl_valori.attach(utils.new_label(_("Vasca:")), 0, 1, 0, 1) tbl_valori.attach(utils.new_label(_("Lunghezza in cm:")), 0, 1, 1, 2) tbl_valori.attach(utils.new_label(_("Larghezza in cm:")), 0, 1, 2, 3) tbl_valori.attach(utils.new_label(_("Altezza in cm:")), 0, 1, 3, 4) # ComboBox self.e_vasca = utils.Combo() self.e_vasca.append_text(_("Dolce")) self.e_vasca.append_text(_("Marino")) self.e_vasca.set_active(0) # Quando si sceglie marino o dolce invochiamo aggiorna() self.e_vasca.connect('changed', self._on_change_vasca) # Creiamo le entry per la tabella valori self.e_altezza, self.e_lunghezza, self.e_larghezza = gtk.Entry(), gtk.Entry(), gtk.Entry() tbl_valori.attach(self.e_vasca, 1, 2, 0, 1, yoptions=0) tbl_valori.attach(self.e_lunghezza, 1, 2, 1, 2, yoptions=0) tbl_valori.attach(self.e_larghezza, 1, 2, 2, 3, yoptions=0) tbl_valori.attach(self.e_altezza, 1, 2, 3, 4, yoptions=0) # Creiamo un notebook di due schede contenenti le diverse # tabelle (per dolce e marino) self.notebook = gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) # Creiamo la tabella per il tipo Dolce tbl = gtk.Table(6, 2) tbl.set_border_width(4) self.dlc_volume = utils.new_label('0', False, labelCopy=_("Volume: %s")) self.dlc_piante_inseribili = utils.new_label('0', False, labelCopy=_("Piante inseribili: %s")) self.dlc_num_pesci_3_4 = utils.new_label('0', False, labelCopy=_("Numero di pesci 3-4 cm: %s")) tbl.attach(utils.new_label(_("Volume:")), 0, 1, 0, 1) tbl.attach(utils.new_label(_("Piante Inseribili:")), 0, 1, 1, 2) tbl.attach(utils.new_label(_("Numero di pesci 3-4 cm:")), 0 ,1, 2, 3) tbl.attach(self.dlc_volume, 1, 2, 0, 1) tbl.attach(self.dlc_piante_inseribili, 1, 2, 1, 2) tbl.attach(self.dlc_num_pesci_3_4, 1, 2, 2, 3) tbl.attach(utils.new_label(_("Numero di pesci 5-6 cm:")), 0, 1, 3, 4) tbl.attach(utils.new_label(_("Watt per piante esigenti:")), 0, 1, 4, 5) tbl.attach(utils.new_label(_("Watt per piante poco esigenti:")), 0, 1, 5, 6) self.dlc_num_pesci_5_6 = utils.new_label('0', False, labelCopy=_("Numero di pesci 5-6 cm: %s")) self.dlc_watt_esigenti = utils.new_label('0', False, labelCopy=_("Watt per piante esigenti: %s")) self.dlc_watt_poco_esigenti = utils.new_label('0', False, labelCopy=_("Watt per piante poco esigenti: %s")) tbl.attach(self.dlc_num_pesci_5_6, 1, 2, 3, 4) tbl.attach(self.dlc_watt_esigenti, 1, 2, 4, 5) tbl.attach(self.dlc_watt_poco_esigenti, 1, 2, 5, 6) box = gtk.VBox() box.pack_start(tbl, False, False, 0) # Aggiungiamo la table per il tipo dolce alla notebook self.notebook.append_page(box, None) # Creiamo la table per il tipo marino tbl = gtk.Table(2, 2) tbl.set_border_width(4) #tbl.set_row_spacings(4) self.mar_volume = utils.new_label('0', False, labelCopy=_("Volume %s")) self.luce_vasche_pesci = utils.new_label('0', False, labelCopy=_("Luce per vasche di pesci: %s")) self.luce_coralli_molli = utils.new_label('0', False, labelCopy=_("Luce per coralli molli: %s")) self.luce_coralli_duri = utils.new_label('0', False, labelCopy=_("Luce per coralli duri: %s")) self.totale_litri_movimento = utils.new_label('0', False, labelCopy=_("Totale l/h in movimento")) self.quantita_sabbia_dsb = utils.new_label('0', False, labelCopy=_("Quantita' di sabbia per dsb: %s")) tbl.attach(utils.new_label(_("Volume:")), 0, 1, 0, 1) tbl.attach(utils.new_label(_("Luce per vasche di pesci:")), 0, 1, 1, 2) tbl.attach(utils.new_label(_("Luce per coralli molli:")), 0, 1, 2, 3) tbl.attach(utils.new_label(_("Luce per coralli duri:")), 0, 1, 3, 4) tbl.attach(utils.new_label(_("Totale l/h in movimento:")), 0, 1, 4, 5) tbl.attach(utils.new_label(_("Quantita di sabbia per dsb:")), 0, 1, 5, 6) tbl.attach(self.mar_volume, 1, 2, 0, 1) tbl.attach(self.luce_vasche_pesci, 1, 2, 1, 2) tbl.attach(self.luce_coralli_molli, 1, 2, 2, 3) tbl.attach(self.luce_coralli_duri, 1, 2, 3, 4) tbl.attach(self.totale_litri_movimento, 1, 2, 4, 5) tbl.attach(self.quantita_sabbia_dsb, 1, 2, 5, 6) # Da definire cosa aggiungere.. ecc :p box = gtk.VBox() box.pack_start(tbl, False, False, 0) # Aggiungiamo la table per il tipo marino alla notebook self.notebook.append_page(box, None) # Pacchiamo la tabella dei valori f1.add(tbl_valori) # .. e la notebook f2.add(self.notebook) bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) btn = gtk.Button(stock=gtk.STOCK_REFRESH) btn.connect('clicked', self._on_refresh) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_COPY) btn.connect('clicked', self._on_copy) bb.pack_start(btn) vbox.pack_start(bb, False, False, 0) self.add(vbox) self.connect ('delete-event', self._on_delete_event) self.show_all()
def create_gui (self): # Qui viene costruita la gui box = gtk.VBox() box.set_spacing(4) box.set_border_width(4) sw = gtk.ScrolledWindow () sw.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) sw.set_shadow_type (gtk.SHADOW_ETCHED_IN) sw.add_with_viewport (box) self.add(sw) f0 = gtk.Frame (_('Connessione')); f1 = gtk.Frame(_('Sonde')); f2 = gtk.Frame(_('Uscite')); f3 = gtk.Frame(_('Regolazione Co2')) box.pack_start (f0, False, False, 0) box.pack_start (f1, False, False, 0) box.pack_start (f2, False, False, 0) box.pack_start (f3, False, False, 0) #f0 tbl_con = gtk.Table(4, 2) tbl_con.set_border_width(5) self.but_on = gtk.ToggleButton ('Offline') self.but_on.connect("toggled", self.on_toggled) tbl_con.attach(self.but_on, 0, 1, 0, 1, xoptions=0) self.but_salva = gtk.Button('Salva') tbl_con.attach(self.but_salva, 1, 2, 0, 1, xoptions=0) self.but_salva.connect("clicked", self.on_salva) #f1 fbox = gtk.HBox () f1_checks = list () x = 1 for i in (_("pH1"), _("pH2"), _("Temperatura"), _("Redox")): tmp = gtk.CheckButton (i) f1_checks.append (tmp) fbox.pack_start (tmp, False, False, 0) f1.add (fbox) # Aggiungi il resto tbl = gtk.Table(4, 2) tbl.set_border_width(5) x = 0; labels = ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10'); f2_checks = list () for i in labels: widget = gtk.CheckButton(_("Uscita ") + i) f2_checks.append (widget) tbl.attach (widget, x, x+1, 0, 1, xoptions=gtk.SHRINK); x += 1 lst = [_("Filtro"), _("Co2"), _("Pompa"), _("Riscaldatore"), _("Refrigerante"), _("Schiumatoio"), _("Neon 1"), _("Neon 2"), _("Neon 3"), _("Neon 4"), _("Neon Lunare")] self.uscita1 = utils.Combo (lst) self.uscita2 = utils.Combo (lst) self.uscita3 = utils.Combo (lst) self.uscita4 = utils.Combo (lst) self.uscita5 = utils.Combo (lst) self.uscita6 = utils.Combo (lst) self.uscita7 = utils.Combo (lst) self.uscita8 = utils.Combo (lst) self.uscita9 = utils.Combo (lst) self.uscita10 = utils.Combo (lst) tbl.attach(self.uscita1, 0, 1, 1, 2, xoptions=0) tbl.attach(self.uscita2, 1, 2, 1, 2, xoptions=0) tbl.attach(self.uscita3, 2, 3, 1, 2, xoptions=0) tbl.attach(self.uscita4, 3, 4, 1, 2, xoptions=0) tbl.attach(self.uscita5, 4, 5, 1, 2, xoptions=0) tbl.attach(self.uscita6, 5, 6, 1, 2, xoptions=0) tbl.attach(self.uscita7, 6, 7, 1, 2, xoptions=0) tbl.attach(self.uscita8, 7, 8, 1, 2, xoptions=0) tbl.attach(self.uscita9, 8, 9, 1, 2, xoptions=0) tbl.attach(self.uscita10, 9, 10, 1, 2, xoptions=0) tbl.attach(utils.new_label(_('Accensione')), 0, 1, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 1, 2, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 2, 3, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 3, 4, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 4, 5, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 5, 6, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 6, 7, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 7, 8, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 8, 9, 2, 3, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Accensione')), 9, 10, 2, 3, xoptions=gtk.SHRINK) self.usc_1 = utils.TimeEntry () self.usc_2 = utils.TimeEntry () self.usc_3 = utils.TimeEntry () self.usc_4 = utils.TimeEntry () self.usc_5 = utils.TimeEntry () self.usc_6 = utils.TimeEntry () self.usc_7 = utils.TimeEntry () self.usc_8 = utils.TimeEntry () self.usc_9 = utils.TimeEntry () self.usc_10 = utils.TimeEntry () tbl.attach(self.usc_1, 0, 1, 3, 4, xoptions=0) tbl.attach(self.usc_2, 1, 2, 3, 4, xoptions=0) tbl.attach(self.usc_3, 2, 3, 3, 4, xoptions=0) tbl.attach(self.usc_4, 3, 4, 3, 4, xoptions=0) tbl.attach(self.usc_5, 4, 5, 3, 4, xoptions=0) tbl.attach(self.usc_6, 5, 6, 3, 4, xoptions=0) tbl.attach(self.usc_7, 6, 7, 3, 4, xoptions=0) tbl.attach(self.usc_8, 7, 8, 3, 4, xoptions=0) tbl.attach(self.usc_9, 8, 9, 3, 4, xoptions=0) tbl.attach(self.usc_10, 9, 10, 3, 4, xoptions=0) tbl.attach(utils.new_label(_('Spegnimento')), 0, 1, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 1, 2, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 2, 3, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 3, 4, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 4, 5, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 5, 6, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 6, 7, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 7, 8, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 8, 9, 4, 5, xoptions=gtk.SHRINK) tbl.attach(utils.new_label(_('Spegnimento')), 9, 10, 4, 5, xoptions=gtk.SHRINK) self.usc_11 = utils.TimeEntry () self.usc_21 = utils.TimeEntry () self.usc_31 = utils.TimeEntry () self.usc_41 = utils.TimeEntry () self.usc_51 = utils.TimeEntry () self.usc_61 = utils.TimeEntry () self.usc_71 = utils.TimeEntry () self.usc_81 = utils.TimeEntry () self.usc_91 = utils.TimeEntry () self.usc_111 = utils.TimeEntry () tbl.attach(self.usc_11, 0, 1, 5, 6, xoptions=0) tbl.attach(self.usc_21, 1, 2, 5, 6, xoptions=0) tbl.attach(self.usc_31, 2, 3, 5, 6, xoptions=0) tbl.attach(self.usc_41, 3, 4, 5, 6, xoptions=0) tbl.attach(self.usc_51, 4, 5, 5, 6, xoptions=0) tbl.attach(self.usc_61, 5, 6, 5, 6, xoptions=0) tbl.attach(self.usc_71, 6, 7, 5, 6, xoptions=0) tbl.attach(self.usc_81, 7, 8, 5, 6, xoptions=0) tbl.attach(self.usc_91, 8, 9, 5, 6, xoptions=0) tbl.attach(self.usc_111, 9, 10, 5, 6, xoptions=0) # Callbacks self.uscita1.connect("changed", self.prova, [self.usc_1, self.usc_11]) self.uscita2.connect("changed", self.prova, [self.usc_2, self.usc_21]) self.uscita3.connect("changed", self.prova, [self.usc_3, self.usc_31]) self.uscita4.connect("changed", self.prova, [self.usc_4, self.usc_41]) self.uscita5.connect("changed", self.prova, [self.usc_5, self.usc_51]) self.uscita6.connect("changed", self.prova, [self.usc_6, self.usc_61]) self.uscita7.connect("changed", self.prova, [self.usc_7, self.usc_71]) self.uscita8.connect("changed", self.prova, [self.usc_8, self.usc_81]) self.uscita9.connect("changed", self.prova, [self.usc_9, self.usc_91]) self.uscita10.connect("changed", self.prova, [self.usc_10, self.usc_111]) lst1 = (_("Sempre acceso")) self.sempre = gtk.CheckButton (lst1) self.sempre.connect("toggled", self.prova1, [self.usc_1, self.usc_11]) tbl.attach(self.sempre, 0, 1, 6, 7, xoptions=gtk.SHRINK) self.sempre1 = gtk.CheckButton (lst1) self.sempre1.connect("toggled", self.prova1, [self.usc_2, self.usc_21]) tbl.attach(self.sempre1, 1, 2, 6, 7, xoptions=gtk.SHRINK) self.sempre2 = gtk.CheckButton (lst1) self.sempre2.connect("toggled", self.prova1, [self.usc_3, self.usc_31]) tbl.attach(self.sempre2, 2, 3, 6, 7, xoptions=gtk.SHRINK) self.sempre3 = gtk.CheckButton (lst1) self.sempre3.connect("toggled", self.prova1, [self.usc_4, self.usc_41]) tbl.attach(self.sempre3, 3, 4, 6, 7, xoptions=gtk.SHRINK) self.sempre4 = gtk.CheckButton (lst1) self.sempre4.connect("toggled", self.prova1, [self.usc_5, self.usc_51]) tbl.attach(self.sempre4, 4, 5, 6, 7, xoptions=gtk.SHRINK) self.sempre5 = gtk.CheckButton (lst1) self.sempre5.connect("toggled", self.prova1, [self.usc_6, self.usc_61]) tbl.attach(self.sempre5, 5, 6, 6, 7, xoptions=gtk.SHRINK) self.sempre6 = gtk.CheckButton (lst1) self.sempre6.connect("toggled", self.prova1, [self.usc_7, self.usc_71]) tbl.attach(self.sempre6, 6, 7, 6, 7, xoptions=gtk.SHRINK) self.sempre7 = gtk.CheckButton (lst1) self.sempre7.connect("toggled", self.prova1, [self.usc_8, self.usc_81]) tbl.attach(self.sempre7, 7, 8, 6, 7, xoptions=gtk.SHRINK) self.sempre8 = gtk.CheckButton (lst1) self.sempre8.connect("toggled", self.prova1, [self.usc_9, self.usc_91]) tbl.attach(self.sempre8, 8, 9, 6, 7, xoptions=gtk.SHRINK) self.sempre9 = gtk.CheckButton (lst1) self.sempre9.connect("toggled", self.prova1, [self.usc_10, self.usc_111]) tbl.attach(self.sempre9, 9, 10, 6, 7, xoptions=gtk.SHRINK) tbl_alba = gtk.Table(2, 4) tbl_alba.set_border_width(5) self.co1 = gtk.CheckButton (_("Co2 Permanente")) tbl_alba.attach(self.co1, 0, 1, 0, 1, xoptions=gtk.FILL) self.co2 = gtk.CheckButton (_("Co2 Regolata dalla luce")) tbl_alba.attach(self.co2, 0, 1, 1, 2, xoptions=gtk.FILL) self.co3 = gtk.CheckButton (_("Co2 Regolata dal pH")) tbl_alba.attach(self.co3, 0, 1, 2, 3, xoptions=gtk.FILL) tbl_alba.attach(utils.new_label(_('Valore di pH da mantenere')), 0, 1, 3, 4, xoptions=gtk.FILL) self.val_ph = utils.FloatEntry () self.val_ph.set_range (0, 10) tbl_alba.attach(self.val_ph, 1, 2, 3, 4, xoptions=gtk.SHRINK) f0.add(tbl_con) f2.add(tbl) f3.add(tbl_alba) self.connect ('delete_event', self.exit)
def __init__(self): gtk.ScrolledWindow.__init__(self) self.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) box = gtk.VBox() box.set_spacing(4) box.set_border_width(4) # Iniziamo con la tabella tbl = gtk.Table (5, 4, False) self.store = gtk.ListStore (str) self.view = gtk.TreeView (self.store) self.view.append_column ( gtk.TreeViewColumn (None, gtk.CellRendererText (), text=0) ) self.view.set_headers_visible (False) self.view.get_selection ().connect ('changed', self._on_change_selection) sw = gtk.ScrolledWindow () sw.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) sw.set_shadow_type (gtk.SHADOW_ETCHED_IN) sw.add (self.view) tbl.attach (sw, 0, 2, 0, 3) btn = gtk.Button (stock=gtk.STOCK_REMOVE) btn.connect ('clicked', self._on_del_collection) tbl.attach (btn, 3, 4, 0, 1) btn = gtk.Button (stock=gtk.STOCK_ADD) btn.connect ('clicked', self._on_add_collection) tbl.attach (btn, 3, 4, 1, 2) self.combo = utils.Combo () self._populate_combo () self.combo.set_active (0) tbl.attach (self.combo, 3, 4, 2, 3) tbl.attach (utils.new_label (_("Minimo")), 1, 2, 3, 4) tbl.attach (utils.new_label (_("Massimo")), 2, 3, 3, 4) tbl.attach (utils.new_label (_("Ideale")), 3, 4, 3, 4) labels = ( _('Ph'), _('Kh'), _('Gh'), _('No2'), _('No3'), _('Conducibilita\''), _('Ammoniaca'), _('Ferro'), _('Rame'), _('Fosfati'), _('Calcio'), _('Magnesio'), _('Densita\'') ) self.widgets = [] x = 4 for i in labels: tbl.attach (utils.new_label (i), 0, 1, x, x+1) min_entry = utils.CheckedFloatEntry () max_entry = utils.CheckedFloatEntry () ide_entry = utils.CheckedFloatEntry () tbl.attach (min_entry, 1, 2, x, x+1) tbl.attach (max_entry, 2, 3, x, x+1) tbl.attach (ide_entry, 3, 4, x, x+1) self.widgets.append ([min_entry, max_entry, ide_entry]) x += 1 box.pack_start(tbl) bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) bb.set_spacing(4) btn = gtk.Button(stock=gtk.STOCK_APPLY) btn.connect('clicked', self._on_apply_changes) btn.set_relief (gtk.RELIEF_NONE) bb.pack_start(btn) box.pack_start(bb, False, False, 0) self.add_with_viewport (box) self.show_all ()
def __init__(self): gtk.Window.__init__(self) self.set_title(_('Allarmi')) self.set_icon_from_file("pixmaps/logopyacqua.jpg") vbox = gtk.VBox() vbox.set_spacing(4) vbox.set_border_width(4) # Pagina Test tbl = gtk.Table(10, 2) tbl.set_border_width(5) tbl.attach(utils.new_label(_('Ph')), 0, 1, 0, 1) tbl.attach(utils.new_label(_('Kh')), 0, 1, 1, 2) tbl.attach(utils.new_label(_('Gh')), 0, 1, 2, 3) tbl.attach(utils.new_label(_('No2')), 0, 1, 3, 4) tbl.attach(utils.new_label(_('No3')), 0, 1, 4, 5) tbl.attach(utils.new_label(_('Conducibilita\'')), 0, 1, 5, 6) tbl.attach(utils.new_label(_('Ammoniaca')), 0, 1, 6, 7) tbl.attach(utils.new_label(_('Ferro')), 0, 1, 7, 8) tbl.attach(utils.new_label(_('Rame')), 0, 1, 8, 9) tbl.attach(utils.new_label(_('Fosfati')), 0, 1, 9, 10) self.ph = utils.new_label('0', False); self.kh = utils.new_label('0', False) self.gh = utils.new_label('0', False); self.no2 = utils.new_label('0', False) self.no3 = utils.new_label('0', False); self.cond = utils.new_label('0', False) self.rame = utils.new_label('0', False); self.fosfati = utils.new_label('0', False) self.ammoniaca = utils.new_label('0', False); self.ferro = utils.new_label('0', False) tbl.attach(self.ph, 1, 2, 0, 1) tbl.attach(self.kh, 1, 2, 1, 2) tbl.attach(self.gh, 1, 2, 2, 3) tbl.attach(self.no2, 1, 2, 3, 4) tbl.attach(self.no3, 1, 2, 4, 5) tbl.attach(self.cond, 1, 2, 5, 6) tbl.attach(self.ammoniaca, 1, 2, 6, 7) tbl.attach(self.ferro, 1, 2, 7, 8) tbl.attach(self.rame, 1, 2, 8, 9) tbl.attach(self.fosfati, 1, 2, 9, 10) vbox.pack_start(tbl) # creiamo la ButtonBox bb = gtk.HButtonBox() bb.set_layout(gtk.BUTTONBOX_END) bb.set_spacing(4) btn = gtk.Button(stock=gtk.STOCK_CLOSE) btn.connect('clicked', self.exit) bb.pack_start(btn) btn = gtk.Button(stock=gtk.STOCK_REFRESH) btn.connect('clicked', self.refresh) bb.pack_start(btn) vbox.pack_start(bb, False, False, 0) self.add(vbox) self.show_all() self.set_size_request(400, 300) # Aggiorniamo le label self.refresh(None)
def make_test_page(self): # Pagina Test tbl = gtk.Table(10, 2) tbl.set_border_width(5) tbl.attach(utils.new_label(_('Ph')), 0, 1, 0, 1) tbl.attach(utils.new_label(_('Kh')), 0, 1, 1, 2) tbl.attach(utils.new_label(_('Gh')), 0, 1, 2, 3) tbl.attach(utils.new_label(_('No2')), 0, 1, 3, 4) tbl.attach(utils.new_label(_('No3')), 0, 1, 4, 5) tbl.attach(utils.new_label(_('Conducibilita\'')), 0, 1, 5, 6) tbl.attach(utils.new_label(_('Ammoniaca')), 0, 1, 6, 7) tbl.attach(utils.new_label(_('Ferro')), 0, 1, 7, 8) tbl.attach(utils.new_label(_('Rame')), 0, 1, 8, 9) tbl.attach(utils.new_label(_('Fosfati')), 0, 1, 9, 10) self.ph = utils.new_label('0', False); self.kh = utils.new_label('0', False) self.gh = utils.new_label('0', False); self.no2 = utils.new_label('0', False) self.no3 = utils.new_label('0', False); self.cond = utils.new_label('0', False) self.rame = utils.new_label('0', False); self.fosfati = utils.new_label('0', False) self.ammoniaca = utils.new_label('0', False); self.ferro = utils.new_label('0', False) tbl.attach(self.ph, 1, 2, 0, 1) tbl.attach(self.kh, 1, 2, 1, 2) tbl.attach(self.gh, 1, 2, 2, 3) tbl.attach(self.no2, 1, 2, 3, 4) tbl.attach(self.no3, 1, 2, 4, 5) tbl.attach(self.cond, 1, 2, 5, 6) tbl.attach(self.ammoniaca, 1, 2, 6, 7) tbl.attach(self.ferro, 1, 2, 7, 8) tbl.attach(self.rame, 1, 2, 8, 9) tbl.attach(self.fosfati, 1, 2, 9, 10) return tbl