def show_warning(self): image = Image() image.set_from_stock(STOCK_STOP, ICON_SIZE_BUTTON) warning_label = Label(' Invalid Password! ') self.hbox.pack_start(image, False, False, 10) self.hbox.pack_start(warning_label, False, False, 0) self.show_all()
def create_button(stock_id, string): from gtk import HBox, Image, Label, ICON_SIZE_BUTTON, Alignment alignment = Alignment() alignment.set_property("xalign", 0.5) alignment.set_property("yalign", 0.5) hbox = HBox(False, 3) if stock_id: image = Image() image.set_from_stock(stock_id, ICON_SIZE_BUTTON) hbox.pack_start(image, False, False, 0) label = Label(string) label.set_property("use-underline", True) hbox.pack_start(label, False, False, 0) alignment.add(hbox) return alignment
def __init__(self, dir=None): HBox.__init__(self, False, 2) buttonImage = Image() buttonImage.set_from_stock(STOCK_REFRESH, ICON_SIZE_MENU) self.combo = ComboBox() self.refreshButton = Button() self.refreshButton.set_image(buttonImage) self.refreshButton.connect('clicked', self.refreshButton_clicked, None) self.model = ListStore(str) self.combo.set_model(self.model) self.dir = dir self.pack_start(self.combo, False, False, 0) self.pack_start(self.refreshButton, False, False, 0) if self.dir != None and exists(self.dir): self.refresh()
class Requeriment(Expander): def __init__(self, objectives, new): Expander.__init__(self) self.connect("enter-notify-event", self.onEnterNotifyEvent) self.connect("leave-notify-event", self.onLeaveNotifyEvent) vBox = VBox() self.add(vBox) # Data model self.model = ListStore(str, float) # Title bar hBox = HBox() self.set_property("label-widget", hBox) self.title = Label() hBox.pack_start(self.title) # Alternatives treeView = TreeView(self.model) # treeView.set_headers_visible(False) vBox.pack_start(treeView) listStore_objectives = ListStore(str) for name in objectives: listStore_objectives.append((name, )) def combo_changed(_, path, text, model): model[path][0] = text cellRenderer = CellRendererCombo() cellRenderer.connect("edited", combo_changed, self.model) cellRenderer.set_property("text-column", 0) cellRenderer.set_property("editable", True) cellRenderer.set_property("has-entry", True) cellRenderer.set_property("model", listStore_objectives) treeViewColumn = TreeViewColumn("Alternative", cellRenderer, text=0) # treeViewColumn = TreeViewColumn(None,cellRenderer,text=0) treeView.append_column(treeViewColumn) def spin_changed(_, path, value, model): model[path][1] = float(value.replace(",", ".")) cellRenderer = CellRendererSpin() cellRenderer.connect("edited", spin_changed, self.model) cellRenderer.set_property("adjustment", Adjustment(1, 0, 100, 1, 10, 0)) cellRenderer.set_property("editable", True) cellRenderer.set_property("digits", 2) treeViewColumn = TreeViewColumn(None, cellRenderer, text=1) treeView.append_column(treeViewColumn) # Add/remove alternative button box # hButtonBox = HButtonBox() # vBox.pack_start(hButtonBox, False) # Add alternative button = Button("gtk-add") button.connect("clicked", self.on_btnAdd_Alternative_clicked) button.set_use_stock(True) # hButtonBox.pack_start(button) vBox.pack_start(button, False) # # Remove alternative # button = Button("gtk-remove") # button.connect("clicked",self.on_btnDel_Alternative_clicked) # button.set_use_stock(True) # hButtonBox.pack_start(button) # Expand the requeriment and add an alternative if it's new if new: self.set_expanded(True) self.model.append((None, 1.0)) # Show requeriment self.show_all() # Delete requeriment button (default is hidden) self.imgRemove = Image() self.imgRemove.connect("button-press-event", self.onDelRequeriment) self.imgRemove.set_from_stock("gtk-cancel", ICON_SIZE_MENU) hBox.pack_start(self.imgRemove) def Add(self, alternative): self.model.append(alternative) names = [] iter = self.model.get_iter_first() while iter: alt = self.model.get_value(iter, 0) if alt: names.append(alt) iter = self.model.iter_next(iter) self.title.set_text(','.join(names)) def GetData(self): result = OrderedDict() iter = self.model.get_iter_first() while iter: alt = self.model.get_value(iter, 0) if alt: result[alt] = self.model.get_value(iter, 1) iter = self.model.iter_next(iter) return result def onDelRequeriment(self, widget): self.get_parent().remove(self) def onEnterNotifyEvent(self, widget, event): self.imgRemove.show() def onLeaveNotifyEvent(self, widget, event): self.imgRemove.hide() def __btnDel_Alternative_Sensitivity(self): pass # self.__btnDel.set_sensitive(len(self.__model.)) def on_btnAdd_Alternative_clicked(self, widget): self.model.append((None, 1.0)) self.__btnDel_Alternative_Sensitivity() def on_btnDel_Alternative_clicked(self, widget): self.__btnDel_Alternative_Sensitivity()