def __init__(self): Gtk.Window.__init__(self) self.set_title('ColorChooserWidget') self.set_border_width(5) self.connect('destroy', Gtk.main_quit) colorchooserwidget = Gtk.ColorChooserWidget() colorchooserwidget.connect('color-activated', self.on_color_activated) self.add(colorchooserwidget)
def __init__(self, parent, current_file, gcolor): Gtk.Dialog.__init__(self, "Pick a Color", parent, 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK)) self.set_default_size(150, 100) box = self.get_content_area() box.set_border_width(10) box.set_spacing(10) sat_box = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL) light_box = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL) self.colorchooser = Gtk.ColorChooserWidget(show_editor=True) self.colorchooser.set_use_alpha(False) self.colorchooser.set_rgba(gcolor) r, g, b, _ = list(map(lambda x: round(x*100*2.55), gcolor)) hue, light, sat = util.rgb_to_hls(r, g, b) self.random_color_btn = Gtk.Button('Random from Current Selection') self.random_color_btn.connect('clicked', self.get_random_color, current_file) self.sat_lbl = Gtk.Label('Saturation') self.light_lbl = Gtk.Label('Light ') sat_range = Gtk.Adjustment(0, 0, 1, 0.1, 0.1, 0) self.sat_slider = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=sat_range) self.sat_slider.set_value(-sat) self.sat_slider.set_digits(2) self.sat_slider.connect('value-changed', self.slider_changed, 'sat') light_range = Gtk.Adjustment(5, 0, 255, 1, 10, 0) self.light_slider = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=light_range) self.light_slider.set_value(light) self.light_slider.connect('value-changed', self.slider_changed, 'light') box.add(self.colorchooser) box.add(self.random_color_btn) sat_box.pack_start(self.sat_lbl, True, True, 0) sat_box.pack_start(self.sat_slider, True, True, 0) light_box.pack_start(self.light_lbl, True, True, 0) light_box.pack_start(self.light_slider, True, True, 0) box.add(light_box) box.add(sat_box) self.show_all()
def __init__(self, parent): Gtk.Dialog.__init__(self, "Pick a Color", parent, 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK)) self.set_default_size(150, 100) box = self.get_content_area() box.set_border_width(10) self.colorchooser = Gtk.ColorChooserWidget(show_editor=True) self.colorchooser.set_use_alpha(False) box.add(self.colorchooser) self.show_all()
def __init__(self): window = Gtk.Window() self.color = Gdk.RGBA(red=1, green=1, blue=1, alpha=1) window.connect("destroy", Gtk.main_quit) box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) window.add(box) self.window = window self.colorchooser = Gtk.ColorChooserWidget(show_editor=True) box.add(self.colorchooser) # self.entry = Gtk.Entry(text='0.5, 0.5, 0.5, 1.0') # box.add(self.entry) button = Gtk.Button(label="Select Color") button.connect("clicked", self.on_button_clicked) box.add(button)
def new_image_dialog(parent): dialog = Dialog(parent, 'Nouvelle image') spin_width = SpinButton(640, 1, 2048) spin_height = SpinButton(360, 1, 1080) color_chooser = Gtk.ColorChooserWidget() color_chooser.set_use_alpha(False) cancel_button = Gtk.Button.new_with_label("Annuler") cancel_button.connect("clicked", close_dialog, dialog) ok_button = Gtk.Button.new_with_label("Valider") ok_button.connect("clicked", ok_callback_new_image, spin_width, spin_height, color_chooser, dialog) dialog_box = dialog.get_content_area() dialog_box.set_spacing(6) spins_box = Gtk.Box(spacing=6) spins_box.pack_start(Gtk.Label('Largeur :'), True, True, 0) spins_box.pack_start(spin_width, True, True, 0) spins_box.pack_start(Gtk.Label('Hauteur :'), True, True, 0) spins_box.pack_start(spin_height, True, True, 0) button_box = Gtk.Box(spacing=6) button_box.pack_start(cancel_button, True, True, 0) button_box.pack_start(ok_button, True, True, 0) dialog_box.pack_start(spins_box, False, False, 0) dialog_box.pack_start(color_chooser, False, False, 0) dialog_box.pack_start(button_box, False, False, 0) dialog.show_all() dialog.run() dialog.destroy() return dialog
def __init__(self): Gtk.Window.__init__(self, title="James Donkey 325RS Config") grid = Gtk.Grid(row_spacing=10, column_spacing=5) box = Gtk.Box() box.add(grid) self.add(box) self.set_border_width(30) button1 = Gtk.Button(label="Reset Device") button1.connect("clicked", self.reset_device) label1 = Gtk.Label() label1.set_text("Light Mode ") radio1 = Gtk.RadioButton.new_with_label_from_widget(None, "Static") radio1.connect("toggled", self.toggle_light_mode, "1") radio2 = Gtk.RadioButton.new_from_widget(radio1) radio2.set_label("Pulsing") radio2.connect("toggled", self.toggle_light_mode, "2") radio3 = Gtk.RadioButton.new_from_widget(radio2) radio3.set_label("Multi-Colour") radio3.connect("toggled", self.toggle_light_mode, "3") label2 = Gtk.Label() label2.set_text("Brightness ") radio4 = Gtk.RadioButton.new_with_label_from_widget(None, "Dim") radio4.connect("toggled", self.toggle_light_lumi, "1") radio5 = Gtk.RadioButton.new_from_widget(radio4) radio5.set_label("Normal") radio5.connect("toggled", self.toggle_light_lumi, "2") radio6 = Gtk.RadioButton.new_from_widget(radio5) radio6.set_label("Bright") radio6.connect("toggled", self.toggle_light_lumi, "3") label3 = Gtk.Label() label3.set_text("Pulse Speed ") radio7 = Gtk.RadioButton.new_with_label_from_widget(None, "Slow") radio7.connect("toggled", self.toggle_light_speed, "1") radio8 = Gtk.RadioButton.new_from_widget(radio7) radio8.set_label("Normal") radio8.connect("toggled", self.toggle_light_speed, "2") radio9 = Gtk.RadioButton.new_from_widget(radio8) radio9.set_label("Fast") radio9.connect("toggled", self.toggle_light_speed, "3") label4 = Gtk.Label() label4.set_text("DPI Display ") label4.set_justify(Gtk.Justification.LEFT) radio10 = Gtk.RadioButton.new_with_label_from_widget(None, "Standard") radio10.connect("toggled", self.toggle_light_dpi, "1") radio11 = Gtk.RadioButton.new_from_widget(radio10) radio11.set_label("Scan") radio11.connect("toggled", self.toggle_light_dpi, "2") radio12 = Gtk.RadioButton.new_from_widget(radio11) radio12.set_label("Thunberbolt") radio12.connect("toggled", self.toggle_light_dpi, "3") button_set_colour = Gtk.Button(label="Apply") grid.attach(button1, 0, 20, 1, 1) grid.attach(button_set_colour, 10, 10, 1, 1) grid.attach(label1, 0, 0, 1, 1) grid.attach(radio1, 1, 0, 1, 1) grid.attach(radio2, 2, 0, 1, 1) grid.attach(radio3, 3, 0, 1, 1) grid.attach(label2, 0, 1, 1, 1) grid.attach(radio4, 1, 1, 1, 1) grid.attach(radio5, 2, 1, 1, 1) grid.attach(radio6, 3, 1, 1, 1) grid.attach(label3, 0, 2, 1, 1) grid.attach(radio7, 1, 2, 1, 1) grid.attach(radio8, 2, 2, 1, 1) grid.attach(radio9, 3, 2, 1, 1) grid.attach(label4, 0, 3, 1, 1) grid.attach(radio10, 1, 3, 1, 1) grid.attach(radio11, 2, 3, 1, 1) grid.attach(radio12, 3, 3, 1, 1) self.colorchooser = Gtk.ColorChooserWidget(show_editor=True) Gtk.ColorChooser.set_use_alpha(self.colorchooser, False) box.add(self.colorchooser) self.colorchooser.connect('color-activated', self.set_colour) button_set_colour.connect("clicked", self.set_colour) dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0) dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a) dp1.set_value(1000) Gtk.Scale.set_digits(dp1, 0) dp1.connect('button-release-event', self.set_dpi, "1") grid.attach(dp1, 1, 11, 3, 1) self.dp1 = dp1 dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0) dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a) dp1.set_value(2000) Gtk.Scale.set_digits(dp1, 0) dp1.connect('button-release-event', self.set_dpi, "2") grid.attach(dp1, 1, 12, 3, 1) self.dp2 = dp1 dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0) dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a) dp1.set_value(3600) Gtk.Scale.set_digits(dp1, 0) dp1.connect('button-release-event', self.set_dpi, "3") grid.attach(dp1, 1, 13, 3, 1) self.dp3 = dp1 dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0) dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a) dp1.set_value(7200) Gtk.Scale.set_digits(dp1, 0) dp1.connect('button-release-event', self.set_dpi, "4") grid.attach(dp1, 1, 14, 3, 1) self.dp4 = dp1 self.radio11 = radio11 self.radio3 = radio3 self.radio6 = radio6 self.radio8 = radio8 self.set_defaults()
def _render_config(self, *args): def _begin_config(*args): task = cmb_tasks.get_active_text() task = self._get_translation_for_desc(task) clr = clr_color.get_rgba().to_string() self._write_config(task, 'background', clr) #Get clr brightness (if is too dark the text will be white) #Extract red green and blue from clr clr_array = clr.split(',') red = int(clr_array[0].replace('rgb(', '')) green = int(clr_array[2].replace(')', '')) blue = int(clr_array[1]) #Values extracted from different web sources and try-catch... red = red * red * 0.241 green = green * green * 0.491 blue = blue * blue * 0.384 bright = sqrt(red + green + blue) if bright < 134: #134 is a good value to distingish between dark and bright self._write_config(task, 'color', 'white') else: self._write_config(task, 'color', 'black') th = threading.Thread(target=self._refresh_grid_tasks, args=[]) th.start() self._set_visible_stack(None, "tasks", Gtk.StackTransitionType.CROSSFADE, 1) def _load_cmb(*args): (tasks, names) = self._load_tasks() cmb_tasks.remove_all() for task in names: cmb_tasks.append_text(_(task)) cmb_tasks.set_active(0) grid = Gtk.Box(homogeneous=True) grid.set_name("MAIN_COMMANDS_GRID") grid_cnf = Gtk.Grid(orientation=Gtk.Orientation.VERTICAL) grid_cnf.set_hexpand(False) grid_cnf.set_vexpand(False) grid_cnf.set_halign(Gtk.Align.CENTER) grid_cnf.set_valign(Gtk.Align.CENTER) grid_cnf.set_name("COMMANDS_GRID") lbl_tasks = Gtk.Label() lbl_tasks.set_text(_("Task group")) lbl_tasks.set_name("ENTRY_LABEL") lbl_tasks.set_halign(Gtk.Align.START) cmb_tasks = Gtk.ComboBoxText.new() cmb_tasks.set_name("GtkCombo") grid_cnf.add(lbl_tasks) grid_cnf.add(cmb_tasks) lbl_color = Gtk.Label() lbl_color.set_text(_("Pick color for group")) lbl_color.set_name("ENTRY_LABEL") clr_color = Gtk.ColorChooserWidget() for c in clr_color.get_children(): for h in c.get_children(): if "Box" in str(h): h.set_visible(False) try: h.get_children() except: h.set_visible(False) grid_cnf.add(lbl_color) grid_cnf.add(clr_color) box_btn = Gtk.Box() box_btn.set_margin_top(MARGIN) box_btn.set_halign(Gtk.Align.END) btn_ok = Gtk.Button.new_from_icon_name("gtk-apply", Gtk.IconSize.BUTTON) btn_ok.connect("clicked", _begin_config) btn_ok.set_tooltip_text(_("Add command")) btn_cancel = Gtk.Button.new_from_icon_name("gtk-close", Gtk.IconSize.BUTTON) btn_cancel.connect("clicked", self._set_visible_stack, "tasks", Gtk.StackTransitionType.CROSSFADE, 1) btn_cancel.set_tooltip_text(_("Cancel")) box_btn.add(btn_cancel) box_btn.add(btn_ok) grid_cnf.add(box_btn) grid.add(grid_cnf) grid.connect("map", _load_cmb) return (grid)
# # THE FOLLOWING CODE IS ONLY FOR TESTING. # # Create the GTK Interface # ROOT_WINDOW = Gtk.Window(title="Zone widget test") ROOT_WINDOW.set_size_request(width=900, height=600) BOX = Gtk.VBox() GRID = Gtk.Grid() VIEWPORT = Gtk.Viewport() VIEWPORT.add(GRID) SCROLLED_WINDOW = Gtk.ScrolledWindow() SCROLLED_WINDOW.add(VIEWPORT) COLOR_CHOOSER_WIDGET = Gtk.ColorChooserWidget() def on_button_click(widget): """ Hide or un-hide the `COLOR_CHOOSER_WIDGET` in order to test the `COLOR_CHOOSER_DIALOG`. """ if COLOR_CHOOSER_WIDGET.get_property('visible'): COLOR_CHOOSER_WIDGET.set_visible(False) else: COLOR_CHOOSER_WIDGET.set_visible(True) BUTTON = Gtk.Button(label="Toggle the ColorChooserWidget") BUTTON.connect('clicked', on_button_click) BOX.pack_start(child=BUTTON, expand=False, fill=True, padding=10)
#!/usr/bin/env python3 from gi.repository import Gtk def color_activated(colorchooserwidget, color): red = (color.red * 255) green = (color.green * 255) blue = (color.blue * 255) print("Hex: #%02x%02x%02x" % (red, green, blue)) window = Gtk.Window() window.connect("destroy", lambda q: Gtk.main_quit()) colorchooserwidget = Gtk.ColorChooserWidget() colorchooserwidget.connect("color-activated", color_activated) window.add(colorchooserwidget) window.show_all() Gtk.main()