def show_color_picker(self, current_color): popup = Popup(title='Color Picker', size_hint=(0.5, 0.5)) color_picker = ColorPicker(color=current_color) color_picker.bind(color=self.on_paint_color) popup.content = color_picker popup.open()
def color_picker(self, wid, btn_color): colPckr = ColorPicker() select_button = Button(text = "Select", size = (100, 25)) layout = GridLayout(cols = 1, padding = 10) layout.add_widget(select_button) layout.add_widget(colPckr) color_popup = Popup(title = 'Color Wheel', content = layout, size_hint = (None, None), size = (600, 600)) color_popup.open() # To monitor changes, we can bind to color property changes def on_color(instance, value): print ("RGBA = ", str(value)) # or instance.color print ("HSV = ", str(instance.hsv)) print ("HEX = ", str(instance.hex_color)) global col col = value wid.selected_color = value colPckr.bind(color = on_color) select_button.bind(on_press = color_popup.dismiss)
def addGraph(self,datapoint,xData,yData,dt): points = [t for t in zip((xData).astype(int),yData)]; ymin = int(min(yData)) ymax = int(max(yData)) xmin = int(min(xData)) xmax = int(max(xData)) if self.setMinMax : if self.ids.graph.ymin > ymin: self.ids.graph.ymin = ymin if self.ids.graph.ymax < ymax: self.ids.graph.ymax = ymax if self.ids.graph.xmin > xmin: self.ids.graph.xmin = xmin if self.ids.graph.xmax < xmax: self.ids.graph.xmax = xmax else: self.ids.graph.ymin = ymin self.ids.graph.ymax = ymax self.ids.graph.xmin = xmin self.ids.graph.xmax = xmax self.setMinMax = True plot = LinePlot(color=self.color) plot.points = points self.ids.graph.add_plot(plot) index = random.randint(0,3) btn1 = ToggleButton(text=datapoint,background_color=self.color) btn1.bind(state=partial(self.on_press,datapoint)) cp = ColorPicker(color=self.color) cp.bind(color=partial(self.on_color,datapoint)) self.plotdata[datapoint] = {'color':self.color,'button':btn1,'plot':plot,'colorpick':cp,'points':points} self.color[index]=self.color[index] - (random.random()); self.ids.hBox.add_widget(btn1) self.ids.hBoxColor.add_widget(cp)
def color_chooser(self): if uiApp.current_selected_widget == None: toast("select a wire first") return content = Button(text='Close me!', size_hint_y=0.1) popup = Popup(title="Theme color") box = BoxLayout(orientation='vertical') clr_picker = ColorPicker() def on_color(instance, value): # self.current_selected_widget.clr.color=instance.color for i in (uiApp.current_selected_widget.parent.parent).children: for j in i.children: if isinstance(j, DraggableWire): child = j.children[0] child.canvas.before.children[0].rgba = instance.color # child = self.current_selected_widget.children[0] # child.canvas.before.children[0].rgba = instance.color clr_picker.bind(color=on_color) box.add_widget(clr_picker) content.bind(on_press=popup.dismiss) box.add_widget(content) popup.add_widget(box) popup.open()
def show_popup(): show = P() # Create a new instance of the P class clr_picker = ColorPicker() clr_picker.pos_hint = {"x": 0.05, "top": 0.99} show.add_widget(clr_picker) def on_color(instance, value): print("RGBA = ", str(value)) # or instance.color global mcolor res = tuple(value) mcolor = list(map(mul, res, (255, 255, 255, 255))) temp = 0 temp = mcolor[0] mcolor[0] = mcolor[2] mcolor[2] = temp mcolor = tuple(mcolor) print(mcolor) clr_picker.bind(color=on_color) popupWindow = Popup(title="Popup Window", content=show, size_hint=(None, None), size=(600, 600)) # Create the popup window popupWindow.open() # show the popup
class ColorPopup(Popup): color = ColorProperty() cp = ObjectProperty() def __init__(self, **kwargs): super().__init__(**kwargs) self.auto_dismiss = False self.size = (500, 500) self.size_hint = (None, None) self.cp = ColorPicker(size_hint=(1, 0.9), color=self.color) self.title_align = "center" self.title_color = [0, 0, 0, 1] self.background = "" self.separator_height = 0 self.cp.bind(color=self.setter("background_color")) box = BoxLayout(orientation="vertical") box.add_widget(self.cp) self.ok_button = Button(text="Ok", on_press=self.on_choosed, size_hint=(1, 1)) self.cancel_button = Button( text="Annuler", on_press=self.dismiss, size_hint=(1, 1) ) button_box = BoxLayout(orientation="horizontal", size_hint=(1, 0.1)) button_box.add_widget(self.ok_button) button_box.add_widget(self.cancel_button) box.add_widget(button_box) self.content = box def on_choosed(self, button): self.color = self.cp.color self.dismiss()
def show(self, rgba, title="", width=400, height=430): self._accept = False self._rgba = rgba vbox_main = BoxLayout(orientation="vertical") hbox_buttons = BoxLayout(orientation="horizontal") hbox_buttons.size_hint_y = None hbox_buttons.height = 35 btn_ok = Button(text="Ok", size_hint_y=None, height=30) btn_cancel = Button(text="Cancel", size_hint_y=None, height=30) self.cp = ColorPicker() self.cp.color = self._rgba #bind self.cp.bind(color=self.on_color) btn_ok.on_release = lambda: self.handle_color_picked(self._rgba) btn_cancel.on_release = lambda: self.popup.dismiss() #layout hbox_buttons.add_widget(btn_ok) hbox_buttons.add_widget(btn_cancel) vbox_main.add_widget(self.cp) vbox_main.add_widget(hbox_buttons) self.popup = Popup(title='', content=vbox_main, size_hint=(None, None), size=(width, height)) self.popup.open() print("size:", btn_ok.on_release)
def choose_color(self): view = ModalView() clrpr = ColorPicker() view.add_widget(clrpr) view.open() def on_color(instance, value): self.color_picked = value clrpr.bind(color=on_color)
def __init__(self, **kw): super(ColorPickerContainer, self).__init__(**kw) brush = APP_CONTEXT.get('brush') self.color_picker = ColorPicker() if brush: self.color_picker.color = brush.color self.color_picker.bind(color=self.picker_callback) self.add_widget(self.color_picker)
class ColorPickerContainer(Bubble): def __init__(self, *args, **kw): picked_callback = kw.get("picker_callback") super(ColorPickerContainer, self).__init__(*args, **kw) brush = APP_CONTEXT.get("brush") self.color_picker = ColorPicker() if brush: self.color_picker.color = brush.color self.color_picker.bind(color=picked_callback) self.add_widget(self.color_picker)
def __init__(self, can, **kwargs): super(clr_pkr, self).__init__(**kwargs) self.pkr = ColorPicker(pos_hint={ 'center_x': 0.5, 'center_y': 0.5 }, size_hint=(1, 1)) self.pkr.bind(color=lambda instance, value: can.add( Color(value[0], value[1], value[2], value[3]))) self.pk()
def draw_colorwheel(self, name) : draw.name = name clr_picker = ColorPicker(size_hint =(.5, .5), pos_hint ={"top":0.72, "right": 0.86}) clr_picker.bind(color=self.on_color) if name == "ennemies_glow" : try : self.rl_visuals.remove_widget(self.rl_wheel_ennemies) self.rl_wheel_ennemies = None return except : self.rl_wheel_ennemies = RelativeLayout(size =(0, 0)) self.rl_wheel_ennemies.add_widget(clr_picker) self.rl_visuals.add_widget(self.rl_wheel_ennemies) elif name == "allies_glow" : try : self.rl_visuals.remove_widget(self.rl_wheel_allies) self.rl_wheel_allies = None return except : self.rl_wheel_allies = RelativeLayout(size =(0, 0)) self.rl_wheel_allies.add_widget(clr_picker) self.rl_visuals.add_widget(self.rl_wheel_allies) elif name == "ennemies_chams" : try : self.rl_visuals.remove_widget(self.rl_wheel_ennemies_chams) self.rl_wheel_ennemies_chams = None return except : self.rl_wheel_ennemies_chams = RelativeLayout(size =(0, 0)) self.rl_wheel_ennemies_chams.add_widget(clr_picker) self.rl_visuals.add_widget(self.rl_wheel_ennemies_chams) elif name == "allies_chams" : try : self.rl_visuals.remove_widget(self.rl_wheel_allies_chams) self.rl_wheel_allies_chams = None return except : self.rl_wheel_allies_chams = RelativeLayout(size =(0, 0)) self.rl_wheel_allies_chams.add_widget(clr_picker) self.rl_visuals.add_widget(self.rl_wheel_allies_chams) elif name == "ui_color" : try : self.rl_settings.remove_widget(self.rl_wheel_ui) self.rl_wheel_ui = None return except : self.rl_wheel_ui = RelativeLayout(size =(0, 0)) self.rl_wheel_ui.add_widget(clr_picker) self.rl_settings.add_widget(self.rl_wheel_ui)
def __init__(self, title, paint, **kwargs): super().__init__(**kwargs) self.paint = paint self.title = title self.colorpicker = ColorPicker(color=self.paint.BACKGROUND_COLOR) self.colorpicker.bind(color=self.set_bg) self.colorbox.add_widget(self.colorpicker) self.colorbox.add_widget( MDRectangleFlatButton(size_hint=(1, .1), text='Close', on_release=lambda btn: self.dismiss()))
class ColorPickerContainer(Bubble): """ color picker container """ picker_callback = ObjectProperty() def __init__(self, **kw): super(ColorPickerContainer, self).__init__(**kw) brush = APP_CONTEXT.get('brush') self.color_picker = ColorPicker() if brush: self.color_picker.color = brush.color self.color_picker.bind(color=self.picker_callback) self.add_widget(self.color_picker)
def dispMenu(self, sth): if self.evr.elemSelected is not None and self.isInfoDisplayed is False: self.rows = 2 self.deleteBtn = DeleteBtn() self.deleteBtn.bind(on_press=self.evr.deleteElemSelec) self.add_widget(self.deleteBtn) self.isInfoDisplayed = True self.clr_picker = ColorPicker() self.clr_picker.bind(color=self.evr.elemSelected.changecolor) self.add_widget(self.clr_picker) if self.evr.elemSelected is None and self.isInfoDisplayed is True: self.clear_widgets() self.isInfoDisplayed = False
def show_color_dialog(self, colname): setcol = self.formatter.get_colors_to_set()[colname] hex_color = setcol.get(self.formatter) if hex_color and hex_color[0] == '#': colors = dict(hex_color=hex_color) elif hex_color and hex_color in FORMATTER_COLORS: colors = dict(hex_color=FORMATTER_COLORS[hex_color]) else: colors = dict(color=(0, 0, 0, 0)) cp = ColorPicker(size_hint_y=None, height=dp(300), **colors) dialog = MDDialog( title="Color choice", type="custom", content_cls=cp, buttons=[ MDRaisedButton(text="Cancel", on_release=partial(self.on_new_color, renc=cp, colname=colname)), MDFlatButton(text="OK", on_release=partial(self.on_new_color, renc=cp, colname=colname)), ]) dialog.open()
def _create_popup(self, instance) -> None: """ create popup layout """ oContent:BoxLayout = BoxLayout(orientation='vertical', spacing='5dp') self.popup = popup = Popup(title=self.title,content=oContent, size_hint=(0.9, 0.9)) # Create the slider used for numeric input oColorpicker:ColorPicker = ColorPicker() self.oColorpicker = oColorpicker oContent.add_widget(oColorpicker) oContent.add_widget(SettingSpacer()) oBtn:cMultiLineButton # 2 buttons are created for accept or cancel the current value oBtnlayout:BoxLayout = BoxLayout(size_hint_y=None, height='50dp', spacing='5dp') oBtn = cMultiLineButton(text=ReplaceVars('$lvar(5008)'), halign='center', valign='middle') oBtn.bind(on_release=self._validate) oBtnlayout.add_widget(oBtn) oBtn = cMultiLineButton(text=ReplaceVars('$lvar(5009)'), halign='center', valign='middle') oBtn.bind(on_release=self._dismiss) oBtnlayout.add_widget(oBtn) oContent.add_widget(oBtnlayout) oColorpicker.bind(color= self.On_Color) # all done, open the popup ! oColorpicker.hex_color = self.value popup.open()
def colorDialog(self, button): # Create a layout for the widget layout = GridLayout(cols = 1, padding = 10); layout.spacing = [0, 5]; # Add widget and close button clr_picker = ColorPicker(); closeButton = Button(text ='Close', size_hint=(1, 0.075)); layout.add_widget(clr_picker); layout.add_widget(closeButton); # Instantiate the modal popup and display popup = Popup(title ='Pick a Color', content = layout, auto_dismiss=False); popup.open(); # Bind the widgets with respective functions clr_picker.bind(color=self.pickColor); closeButton.bind(on_press=popup.dismiss);
def _create_popup(self, instance): # create popup layout content = BoxLayout(orientation='vertical', spacing='5dp') popup_width = min(0.95 * Window.width, dp(500)) self.colorpicker = ColorPicker( color=list(map(float, self.value.split(',')))) content.add_widget(self.colorpicker) # 2 buttons are created for accept or cancel the current value btnlayout = BoxLayout(size_hint_y=None, height='50dp', spacing='5dp') btn = Button(text='Ok') btn.bind(on_release=self._validate) btnlayout.add_widget(btn) btn = Button(text='Cancel') btn.bind(on_release=self._dismiss) btnlayout.add_widget(btn) content.add_widget(btnlayout) self.popup = popup = Popup(title=self.title, content=content, size_hint=(None, 0.8), width=popup_width) # all done, open the popup ! popup.open()
def _create_popup(self, instance): # create popup layout content = BoxLayout(orientation='vertical', spacing='5dp') popup_width = 0.95 * Window.width self.popup = popup = Popup(title=self.title, content=content, size_hint=(None, 0.9), width=popup_width) self.colorpicker = colorpicker = ColorPicker( color=utils.get_color_from_hex(self.value)) colorpicker.bind(on_color=self._validate) self.colorpicker = colorpicker content.add_widget(colorpicker) # 2 buttons are created for accept or cancel the current value btnlayout = BoxLayout(size_hint_y=None, height='50dp', spacing='5dp') btn = Button(text='Ok') btn.bind(on_release=self._validate) btnlayout.add_widget(btn) btn = Button(text='Cancel') btn.bind(on_release=self._dismiss) btnlayout.add_widget(btn) content.add_widget(btnlayout) popup.open()
class ColorPopup(Popup): '''Color selector for background and center point''' colorbox = ObjectProperty() no_bg_switch = ObjectProperty() no_center_point_switch = ObjectProperty() def __init__(self, title, paint, **kwargs): super().__init__(**kwargs) self.paint = paint self.title = title self.colorpicker = ColorPicker(color=self.paint.BACKGROUND_COLOR) self.colorpicker.bind(color=self.set_bg) self.colorbox.add_widget(self.colorpicker) self.colorbox.add_widget( MDRectangleFlatButton(size_hint=(1, .1), text='Close', on_release=lambda btn: self.dismiss())) def set_bg(self, instance, value): '''sets the background to the selected color''' if self.no_bg_switch.active: Window.clearcolor = list(value) self.paint.canvas.before.get_group('background')[0].a = 0 else: current_bg = self.paint.canvas.before.get_group('background')[0] current_bg.r = value[0] current_bg.g = value[1] current_bg.b = value[2] current_bg.a = value[3] self.paint.BACKGROUND_COLOR = value def disable_center_point(self): '''on off center point''' if self.no_center_point_switch.active: self.paint.canvas.before.get_group('center')[0].a = 0 else: self.paint.canvas.before.get_group('center')[0].a = 1 def disable_bg(self): '''makes the background invisible for saving or turns it back on''' if self.no_bg_switch.active: Window.clearcolor = list(self.paint.BACKGROUND_COLOR) self.paint.canvas.before.get_group('background')[0].a = 0 else: Window.clearcolor = (0, 0, 0, 1) self.paint.canvas.before.get_group('background')[0].a = 1
def change_color(self,*args): r,g,b,a = self.col[0], self.col[1], self.col[2], self.col[3] self.picker = ColorPicker(pos_hint={'center_x': .5, 'center_y': .5}, color = [r,g,b,a], size_hint = (1,1)) self.picker.add_widget(Button(text = 'Select', pos_hint = {'center_x': .76, 'y': -.02}, size_hint = (.08, .08), # size = (100, 35), on_press = self.selected)) self.edge_toggle = ToggleButton(text = 'Edge', pos_hint = {'center_x': .55, 'y': -.02}, size_hint = (.08, .08), # size = (100, 35), group = 'color', state = 'down') self.edge_toggle.bind(on_press = self.pressed_toggle_edge) self.picker.add_widget(self.edge_toggle) self.fill_toggle = ToggleButton(text = 'Fill', pos_hint = {'center_x': .63, 'y': -.02}, size_hint = (.08, .08), # size = (100, 35), group = 'color') self.fill_toggle.bind(on_press = self.pressed_toggle_fill) self.picker.add_widget(self.fill_toggle) self.match_toggle = ToggleButton(text = 'Match', pos_hint = {'x': .8, 'y': -.02}, size_hint = (.08, .08), # size = (100, 35), group = 'match') self.picker.add_widget(self.match_toggle) self.ColPop = Popup(title = "Choose Color", size_hint = (.50, .50), content = self.picker, # size = (1500, 750), auto_dismiss = True) self.ColPop.open()
def createGraphicsPanel(self): self.graphicsPanel = BoxLayout(orientation='vertical', size_hint_y=0.6) graphicsIntro = BoxLayout(orientation='horizontal', size_hint_y=0.15) graphicsLabel = Label(text="Graphics") self.graphicsName = TextInput(hint_text="Object Name (e.g. center)", multiline=False) graphicsIntro.add_widget(graphicsLabel) graphicsIntro.add_widget(self.graphicsName) graphicsShape = BoxLayout(orientation='horizontal', size_hint_y=0.15) shapeLabel = Label(text="Shape") self.shapeSpinner = Spinner(values=["circle", "box", "arrow"]) graphicsShape.add_widget(shapeLabel) graphicsShape.add_widget(self.shapeSpinner) graphicsColor = BoxLayout(orientation='horizontal') self.colorPicker = ColorPicker() graphicsColor.add_widget(self.colorPicker) graphicsSize = BoxLayout(orientation='horizontal', size_hint_y=0.15) self.sizeX = TextInput(hint_text="Size X", multiline=False, input_filter="float") self.sizeY = TextInput(hint_text="Size Y", multiline=False, input_filter="float") self.sizeZ = TextInput(hint_text="Size Z", multiline=False, input_filter="float") graphicsSize.add_widget(self.sizeX) graphicsSize.add_widget(self.sizeY) graphicsSize.add_widget(self.sizeZ) graphicsPosition = BoxLayout(orientation='horizontal', size_hint_y=0.15) self.posX = TextInput(hint_text="Pos X", multiline=False, input_filter="float") self.posY = TextInput(hint_text="Pos Y", multiline=False, input_filter="float") self.posZ = TextInput(hint_text="Pos Z", multiline=False, input_filter="float") graphicsSize.add_widget(self.posX) graphicsSize.add_widget(self.posY) graphicsSize.add_widget(self.posZ) graphicsButton = Button(text="Add Graphics Object to State", on_release=self.addGraphics,\ size_hint_y=0.15) self.graphicsPanel.add_widget(graphicsIntro) self.graphicsPanel.add_widget(graphicsShape) self.graphicsPanel.add_widget(graphicsColor) self.graphicsPanel.add_widget(graphicsSize) self.graphicsPanel.add_widget(graphicsPosition) self.graphicsPanel.add_widget(graphicsButton)
def create_color_popup(self): self.color_popup = MyPopup() self.color_popup.title = 'Colors' bxl = BoxLayout(orientation='vertical', padding=25) clr_picker = ColorPicker(color=self.COLOR) clr_picker.bind(color=self.on_color) bxl.add_widget(clr_picker) self.random_color_select = MDSwitch() radmcolrbx = BoxLayout(size_hint=(1, .15)) radmcolrbx.add_widget(Label(text='Use random colors:')) radmcolrbx.add_widget(self.random_color_select) bxl.add_widget(radmcolrbx) bxl.add_widget( MDRectangleFlatButton( text="Close", size_hint=(1, .1), on_release=lambda btn: self.color_popup.dismiss())) self.color_popup.add_widget(bxl)
def change_color_background(self,*args): r,g,b,a = self.col_background[0], self.col_background[1], self.col_background[2], self.col_background[3] self.picker_background = ColorPicker(pos_hint={'center_x': .5, 'center_y': .5}, color = [r,g,b,a], size_hint = (1, 1)) self.picker_background.add_widget(Button(text = 'Select', pos_hint = {'center_x': .76, 'y': -.02}, size_hint = (.08, .08), # size = (100, 35), on_press = self.background_selected)) self.ColPop_background = Popup(title = "Choose Background", size_hint = (.5, .5), content = self.picker_background, # size = (1500, 750), auto_dismiss = True) self.ColPop_background.open()
def build(self): self.ids.setbox.clear_widgets() #create layout to display the data color_picker = ColorPicker() self.ids.setbox.add_widget(color_picker) #capture color selection def on_color(instance, value): RGBA = list(color_picker.hex_color[1:]) A = (RGBA[6] + RGBA[7]) B = (RGBA[4] + RGBA[5]) G = (RGBA[2] + RGBA[3]) R = (RGBA[0] + RGBA[1]) global ARGB ARGB = A+R+G+B color_picker.bind(color=on_color) #binds to function above
class Modif(GridLayout): def __init__(self, evr): super(Modif, self).__init__() self.evr = evr self.isInfoDisplayed = False Clock.schedule_interval(self.dispMenu, 1 / 10) def dispMenu(self, sth): if self.evr.elemSelected is not None and self.isInfoDisplayed is False: self.rows = 2 self.deleteBtn = DeleteBtn() self.deleteBtn.bind(on_press=self.evr.deleteElemSelec) self.add_widget(self.deleteBtn) self.isInfoDisplayed = True self.clr_picker = ColorPicker() self.clr_picker.bind(color=self.evr.elemSelected.changecolor) self.add_widget(self.clr_picker) if self.evr.elemSelected is None and self.isInfoDisplayed is True: self.clear_widgets() self.isInfoDisplayed = False
def build(self): #create layout to display the data color_picker = ColorPicker() self.ids.setbox.add_widget(color_picker) #capture color selection def on_color(instance, value): #print "RGBA = ", str(value) # or instance.color #print "HSV = ", str(instance.hsv) #print "HEX = ", str(instance.hex_color) RGBA = list(color_picker.hex_color[1:]) A = (RGBA[6] + RGBA[7]) B = (RGBA[4] + RGBA[5]) G = (RGBA[2] + RGBA[3]) R = (RGBA[0] + RGBA[1]) global ARGB ARGB = A + R + G + B print(ARGB) color_picker.bind(color=on_color) #binds to function above
def get_configuration_subpanel(self, prop, owner, key): layout = StackLayout(orientation='lr-tb', size_hint=(None, None), width=dc.col_width, height=20) clr_picker = ColorPicker() if (key in rvit.core.pars.keys()): current_color = rvit.core.pars[key] clr_picker.color = current_color def on_color(instance, value): prop.set(owner, list(instance.color)) rvit.core.pars[key] = list(instance.color) clr_picker.bind(color=on_color) layout.add_widget( Label(text=prop.name, size_hint=(1.0, None), height=dc.text_height)) layout.add_widget(clr_picker) layout.height = 550 return layout
class ColorPickerScreen(Screen): def __init__(self, **kw): super().__init__(**kw) self.size_hint = 0.9, 0.9 self.pos_hint = {"center_x": 0.5, "center_y": 0.5} box = BoxLayout() box.orientation = "vertical" self.add_widget(box) self.pick_btn = MDRaisedButton(on_press=self.press_ok) self.pick_btn.size_hint = 1, 0.1 self.pick_btn.text = "пример" self.app = MDApp.get_running_app() self.current_color = None self.clr_picker = ColorPicker() self.clr_picker.bind(color=self.on_color) okbtn = MDRaisedButton(on_press=self.press_ok) okbtn.text = "принять" box.add_widget(self.pick_btn) box.add_widget(self.clr_picker) box.add_widget(okbtn) def press_ok(self, v): self.app.screen_manager.current = "settings_view" self.app.settings_view.options["color"].set_color(self.current_color) self.app.view.set_color(self.current_color) self.pick_btn.md_bg_color = self.current_color def on_color(self, instance, value): self.current_color = value self.pick_btn.md_bg_color = self.current_color
def __init__(self, **kw): super().__init__(**kw) self.size_hint = 0.9, 0.9 self.pos_hint = {"center_x": 0.5, "center_y": 0.5} box = BoxLayout() box.orientation = "vertical" self.add_widget(box) self.pick_btn = MDRaisedButton(on_press=self.press_ok) self.pick_btn.size_hint = 1, 0.1 self.pick_btn.text = "пример" self.app = MDApp.get_running_app() self.current_color = None self.clr_picker = ColorPicker() self.clr_picker.bind(color=self.on_color) okbtn = MDRaisedButton(on_press=self.press_ok) okbtn.text = "принять" box.add_widget(self.pick_btn) box.add_widget(self.clr_picker) box.add_widget(okbtn)
class RGBW_Layout_Container(GridLayout): rgbw1 = ObjectProperty(RGBW_Led_Widget) rgbw2 = ObjectProperty(RGBW_Led_Widget) clr_picker = ColorPicker() def __init__(self, colors, config): super(RGBW_Layout_Container, self).__init__() self.rgbw1 = RGBW_Led_Widget(1, config) self.rgbw2 = RGBW_Led_Widget(2, config) #self.cols = 3 self.cols = 2 self.rgbw1.build(colors[1]) self.add_widget(self.rgbw1) self.rgbw2.build(colors[2]) self.add_widget(self.rgbw2) #self.add_widget(self.clr_picker) def build(self): return self
def open_colorpicker_popup(self, popup, _id, buttoninstance): colorPicker = ColorPicker(id=_id) buttonLayout = BoxLayout(orientation="horizontal", padding="5sp", size_hint_y=0.2) okButton = Button( text="OK", on_release= lambda but: \ self.popup_dismissed(_id, colorPicker.hex_color, colorPicker.color, buttoninstance) and \ popup.dismiss()) cancelButton = Button(text="Cancel", on_release=lambda but: popup.dismiss()) buttonLayout.add_widget(okButton) buttonLayout.add_widget(cancelButton) mainLayout = BoxLayout(orientation="vertical") mainLayout.add_widget(colorPicker) mainLayout.add_widget(buttonLayout) return mainLayout
from kivy.uix.colorpicker import ColorPicker clr_picker = ColorPicker() add_widget(clr_picker) def on_color(): print "RGBA = ", str(value) print "HSV = ", str(instance.hsv) print "HEX = ", str(instance.hex_color) clr_picker.bind(color=on_color)
def __init__(self, **kwargs): ''' Init main class ui ''' super(MainBox, self).__init__(**kwargs) self.f_size = '15sp' # Shape Widget self.shape = Shape(size_hint=(0.7, 1)) self.add_widget(self.shape) # Right Menu self.panel = TabbedPanel(size_hint=(0.3, 1), do_default_tab=False) self.tab_param = TabbedPanelItem(text='Parameters') self.tab_color = TabbedPanelItem(text='Shape') self.tab_color_bg = TabbedPanelItem(text='Background') self.tab_export = TabbedPanelItem(text='Export') self.panel.add_widget(self.tab_param) self.panel.add_widget(self.tab_color) self.panel.add_widget(self.tab_color_bg) self.panel.add_widget(self.tab_export) self.menu_right = RightMenu( padding=15, orientation="vertical") # Switch mode line self.box_switch = BoxLayout(orientation='horizontal') self.mode_label = Label( text="Line mode", font_size=self.f_size, markup=True) self.box_switch.add_widget(self.mode_label) self.switch_mode = Switch(active=False) self.switch_mode.bind(active=self.on_switch) self.box_switch.add_widget(self.switch_mode) self.menu_right.add_widget(self.box_switch) # Size value self.box_size = BoxLayout(orientation='horizontal') self.size_label = Label( text="Shape size", font_size=self.f_size, markup=True) self.size_label_value = Label( text=str(self.shape.shape_size), font_size=self.f_size, markup=True) self.box_size.add_widget(self.size_label) self.box_size.add_widget(self.size_label_value) self.slider_shape_size = Slider( min=self.shape.property('shape_size').get_min(self.shape), max=self.shape.property('shape_size').get_max(self.shape), value=self.shape.shape_size, step=1) self.slider_shape_size.bind(value=self.change_shape_size) self.menu_right.add_widget(self.box_size) self.menu_right.add_widget(self.slider_shape_size) # Width point or line self.box_stroke = BoxLayout(orientation='horizontal') self.wdth_label = Label( text="Stroke width", font_size=self.f_size, markup=True) self.wdth_label_value = Label( text=str(self.shape.wdth), font_size=self.f_size, markup=True) self.box_stroke.add_widget(self.wdth_label) self.box_stroke.add_widget(self.wdth_label_value) self.slider_wdth = Slider( min=self.shape.property('wdth').get_min(self.shape), max=self.shape.property('wdth').get_max(self.shape), value=self.shape.wdth, step=1) self.slider_wdth.bind(value=self.change_wdth) self.menu_right.add_widget(self.box_stroke) self.menu_right.add_widget(self.slider_wdth) # a value self.box_a = BoxLayout(orientation='horizontal') self.a_label = Label( text="Param a ", font_size=self.f_size, markup=True) self.a_label_value = Label( text=str(self.shape.a), font_size=self.f_size, markup=True) self.box_a.add_widget(self.a_label) self.box_a.add_widget(self.a_label_value) self.slider_a = Slider( min=self.shape.property('a').get_min(self.shape), max=self.shape.property('a').get_max(self.shape), value=self.shape.a) self.slider_a.bind(value=self.change_a) self.menu_right.add_widget(self.box_a) self.menu_right.add_widget(self.slider_a) # b value self.box_b = BoxLayout(orientation='horizontal') self.b_label = Label( text="Param b ", font_size=self.f_size, markup=True) self.b_label_value = Label( text=str(self.shape.b), font_size=self.f_size, markup=True) self.box_b.add_widget(self.b_label) self.box_b.add_widget(self.b_label_value) self.slider_b = Slider( min=self.shape.property('b').get_min(self.shape), max=self.shape.property('b').get_max(self.shape), value=self.shape.b) self.slider_b.bind(value=self.change_b) self.menu_right.add_widget(self.box_b) self.menu_right.add_widget(self.slider_b) # m value self.box_m = BoxLayout(orientation='horizontal') self.m_label = Label( text="Param m ", font_size=self.f_size, markup=True) self.m_label_value = Label( text=str(self.shape.m), font_size=self.f_size, markup=True) self.box_m.add_widget(self.m_label) self.box_m.add_widget(self.m_label_value) self.slider_m = Slider( min=self.shape.property('m').get_min(self.shape), max=self.shape.property('m').get_max(self.shape), value=self.shape.m) self.slider_m.bind(value=self.change_m) self.menu_right.add_widget(self.box_m) self.menu_right.add_widget(self.slider_m) # n1 value self.box_n1 = BoxLayout(orientation='horizontal') self.n1_label = Label( text="Param n1 ", font_size=self.f_size, markup=True) self.n1_label_value = Label( text=str(self.shape.n1), font_size=self.f_size, markup=True) self.box_n1.add_widget(self.n1_label) self.box_n1.add_widget(self.n1_label_value) self.slider_n1 = Slider( min=self.shape.property('n1').get_min(self.shape), max=self.shape.property('n1').get_max(self.shape), value=self.shape.n1) self.slider_n1.bind(value=self.change_n1) self.menu_right.add_widget(self.box_n1) self.menu_right.add_widget(self.slider_n1) # n2 value self.box_n2 = BoxLayout(orientation='horizontal') self.n2_label = Label( text="Param n2 ", font_size=self.f_size, markup=True) self.n2_label_value = Label( text=str(self.shape.n2), font_size=self.f_size, markup=True) self.box_n2.add_widget(self.n2_label) self.box_n2.add_widget(self.n2_label_value) self.slider_n2 = Slider( min=self.shape.property('n2').get_min(self.shape), max=self.shape.property('n2').get_max(self.shape), value=self.shape.n2) self.slider_n2.bind(value=self.change_n2) self.menu_right.add_widget(self.box_n2) self.menu_right.add_widget(self.slider_n2) # n3 value self.box_n3 = BoxLayout(orientation='horizontal') self.n3_label = Label( text="Param n3 ", font_size=self.f_size, markup=True) self.n3_label_value = Label( text=str(self.shape.n3), font_size=self.f_size, markup=True) self.box_n3.add_widget(self.n3_label) self.box_n3.add_widget(self.n3_label_value) self.slider_n3 = Slider( min=self.shape.property('n3').get_min(self.shape), max=self.shape.property('n3').get_max(self.shape), value=self.shape.n3) self.slider_n3.bind(value=self.change_n3) self.menu_right.add_widget(self.box_n3) self.menu_right.add_widget(self.slider_n3) # Nb points self.box_nbp = BoxLayout(orientation='horizontal') self.nbp_label = Label( text="Points number ", font_size=self.f_size, markup=True) self.nbp_label_value = Label( text=str(self.shape.nbp), font_size=self.f_size, markup=True) self.box_nbp.add_widget(self.nbp_label) self.box_nbp.add_widget(self.nbp_label_value) self.slider_nbp = Slider( min=self.shape.property('nbp').get_min(self.shape), max=self.shape.property('nbp').get_max(self.shape), value=self.shape.nbp, step=2) self.slider_nbp.bind(value=self.change_nbp) self.menu_right.add_widget(self.box_nbp) self.menu_right.add_widget(self.slider_nbp) # Percent self.box_percent = BoxLayout(orientation='horizontal') self.percent_label = Label( text="Percent ", font_size=self.f_size, markup=True) self.percent_label_value = Label( text=str(self.shape.percent), font_size=self.f_size, markup=True) self.box_percent.add_widget(self.percent_label) self.box_percent.add_widget(self.percent_label_value) self.slider_percent = Slider( min=self.shape.property('percent').get_min(self.shape), max=self.shape.property('percent').get_max(self.shape), value=self.shape.percent, step=1) self.slider_percent.bind(value=self.change_percent) self.menu_right.add_widget(self.box_percent) self.menu_right.add_widget(self.slider_percent) # Travel self.box_travel = BoxLayout(orientation='horizontal') self.travel_label = Label( text="Travel ", font_size=self.f_size, markup=True) self.travel_label_value = Label( text=str(self.shape.travel), font_size=self.f_size, markup=True) self.box_travel.add_widget(self.travel_label) self.box_travel.add_widget(self.travel_label_value) self.slider_travel = Slider( min=self.shape.property('travel').get_min(self.shape), max=self.shape.property('travel').get_max(self.shape), value=self.shape.travel, step=2) self.slider_travel.bind(value=self.change_travel) self.menu_right.add_widget(self.box_travel) self.menu_right.add_widget(self.slider_travel) # ColorPicker for Shape self.picker = ColorPicker() self.picker.bind(color=self.on_color) # ColorPicker for background self.picker_bg = ColorPicker() self.picker_bg.bind(color=self.on_color_bg) # Export svg button self.export_button = Button(text='Export', size_hint=(1, 0.15)) self.export_button.bind(on_press=self.export) # Tab packs self.tab_param.add_widget(self.menu_right) self.tab_color.add_widget(self.picker) self.tab_color_bg.add_widget(self.picker_bg) self.tab_export.add_widget(self.export_button) self.add_widget(self.panel) # Popups self.pop_export = Popup( title="Export file", content=Label(text="File exported"), size_hint=(None, None), size=(640, 240))
class MainBox(BoxLayout): ''' Mainbox class ''' def __init__(self, **kwargs): ''' Init main class ui ''' super(MainBox, self).__init__(**kwargs) self.f_size = '15sp' # Shape Widget self.shape = Shape(size_hint=(0.7, 1)) self.add_widget(self.shape) # Right Menu self.panel = TabbedPanel(size_hint=(0.3, 1), do_default_tab=False) self.tab_param = TabbedPanelItem(text='Parameters') self.tab_color = TabbedPanelItem(text='Shape') self.tab_color_bg = TabbedPanelItem(text='Background') self.tab_export = TabbedPanelItem(text='Export') self.panel.add_widget(self.tab_param) self.panel.add_widget(self.tab_color) self.panel.add_widget(self.tab_color_bg) self.panel.add_widget(self.tab_export) self.menu_right = RightMenu( padding=15, orientation="vertical") # Switch mode line self.box_switch = BoxLayout(orientation='horizontal') self.mode_label = Label( text="Line mode", font_size=self.f_size, markup=True) self.box_switch.add_widget(self.mode_label) self.switch_mode = Switch(active=False) self.switch_mode.bind(active=self.on_switch) self.box_switch.add_widget(self.switch_mode) self.menu_right.add_widget(self.box_switch) # Size value self.box_size = BoxLayout(orientation='horizontal') self.size_label = Label( text="Shape size", font_size=self.f_size, markup=True) self.size_label_value = Label( text=str(self.shape.shape_size), font_size=self.f_size, markup=True) self.box_size.add_widget(self.size_label) self.box_size.add_widget(self.size_label_value) self.slider_shape_size = Slider( min=self.shape.property('shape_size').get_min(self.shape), max=self.shape.property('shape_size').get_max(self.shape), value=self.shape.shape_size, step=1) self.slider_shape_size.bind(value=self.change_shape_size) self.menu_right.add_widget(self.box_size) self.menu_right.add_widget(self.slider_shape_size) # Width point or line self.box_stroke = BoxLayout(orientation='horizontal') self.wdth_label = Label( text="Stroke width", font_size=self.f_size, markup=True) self.wdth_label_value = Label( text=str(self.shape.wdth), font_size=self.f_size, markup=True) self.box_stroke.add_widget(self.wdth_label) self.box_stroke.add_widget(self.wdth_label_value) self.slider_wdth = Slider( min=self.shape.property('wdth').get_min(self.shape), max=self.shape.property('wdth').get_max(self.shape), value=self.shape.wdth, step=1) self.slider_wdth.bind(value=self.change_wdth) self.menu_right.add_widget(self.box_stroke) self.menu_right.add_widget(self.slider_wdth) # a value self.box_a = BoxLayout(orientation='horizontal') self.a_label = Label( text="Param a ", font_size=self.f_size, markup=True) self.a_label_value = Label( text=str(self.shape.a), font_size=self.f_size, markup=True) self.box_a.add_widget(self.a_label) self.box_a.add_widget(self.a_label_value) self.slider_a = Slider( min=self.shape.property('a').get_min(self.shape), max=self.shape.property('a').get_max(self.shape), value=self.shape.a) self.slider_a.bind(value=self.change_a) self.menu_right.add_widget(self.box_a) self.menu_right.add_widget(self.slider_a) # b value self.box_b = BoxLayout(orientation='horizontal') self.b_label = Label( text="Param b ", font_size=self.f_size, markup=True) self.b_label_value = Label( text=str(self.shape.b), font_size=self.f_size, markup=True) self.box_b.add_widget(self.b_label) self.box_b.add_widget(self.b_label_value) self.slider_b = Slider( min=self.shape.property('b').get_min(self.shape), max=self.shape.property('b').get_max(self.shape), value=self.shape.b) self.slider_b.bind(value=self.change_b) self.menu_right.add_widget(self.box_b) self.menu_right.add_widget(self.slider_b) # m value self.box_m = BoxLayout(orientation='horizontal') self.m_label = Label( text="Param m ", font_size=self.f_size, markup=True) self.m_label_value = Label( text=str(self.shape.m), font_size=self.f_size, markup=True) self.box_m.add_widget(self.m_label) self.box_m.add_widget(self.m_label_value) self.slider_m = Slider( min=self.shape.property('m').get_min(self.shape), max=self.shape.property('m').get_max(self.shape), value=self.shape.m) self.slider_m.bind(value=self.change_m) self.menu_right.add_widget(self.box_m) self.menu_right.add_widget(self.slider_m) # n1 value self.box_n1 = BoxLayout(orientation='horizontal') self.n1_label = Label( text="Param n1 ", font_size=self.f_size, markup=True) self.n1_label_value = Label( text=str(self.shape.n1), font_size=self.f_size, markup=True) self.box_n1.add_widget(self.n1_label) self.box_n1.add_widget(self.n1_label_value) self.slider_n1 = Slider( min=self.shape.property('n1').get_min(self.shape), max=self.shape.property('n1').get_max(self.shape), value=self.shape.n1) self.slider_n1.bind(value=self.change_n1) self.menu_right.add_widget(self.box_n1) self.menu_right.add_widget(self.slider_n1) # n2 value self.box_n2 = BoxLayout(orientation='horizontal') self.n2_label = Label( text="Param n2 ", font_size=self.f_size, markup=True) self.n2_label_value = Label( text=str(self.shape.n2), font_size=self.f_size, markup=True) self.box_n2.add_widget(self.n2_label) self.box_n2.add_widget(self.n2_label_value) self.slider_n2 = Slider( min=self.shape.property('n2').get_min(self.shape), max=self.shape.property('n2').get_max(self.shape), value=self.shape.n2) self.slider_n2.bind(value=self.change_n2) self.menu_right.add_widget(self.box_n2) self.menu_right.add_widget(self.slider_n2) # n3 value self.box_n3 = BoxLayout(orientation='horizontal') self.n3_label = Label( text="Param n3 ", font_size=self.f_size, markup=True) self.n3_label_value = Label( text=str(self.shape.n3), font_size=self.f_size, markup=True) self.box_n3.add_widget(self.n3_label) self.box_n3.add_widget(self.n3_label_value) self.slider_n3 = Slider( min=self.shape.property('n3').get_min(self.shape), max=self.shape.property('n3').get_max(self.shape), value=self.shape.n3) self.slider_n3.bind(value=self.change_n3) self.menu_right.add_widget(self.box_n3) self.menu_right.add_widget(self.slider_n3) # Nb points self.box_nbp = BoxLayout(orientation='horizontal') self.nbp_label = Label( text="Points number ", font_size=self.f_size, markup=True) self.nbp_label_value = Label( text=str(self.shape.nbp), font_size=self.f_size, markup=True) self.box_nbp.add_widget(self.nbp_label) self.box_nbp.add_widget(self.nbp_label_value) self.slider_nbp = Slider( min=self.shape.property('nbp').get_min(self.shape), max=self.shape.property('nbp').get_max(self.shape), value=self.shape.nbp, step=2) self.slider_nbp.bind(value=self.change_nbp) self.menu_right.add_widget(self.box_nbp) self.menu_right.add_widget(self.slider_nbp) # Percent self.box_percent = BoxLayout(orientation='horizontal') self.percent_label = Label( text="Percent ", font_size=self.f_size, markup=True) self.percent_label_value = Label( text=str(self.shape.percent), font_size=self.f_size, markup=True) self.box_percent.add_widget(self.percent_label) self.box_percent.add_widget(self.percent_label_value) self.slider_percent = Slider( min=self.shape.property('percent').get_min(self.shape), max=self.shape.property('percent').get_max(self.shape), value=self.shape.percent, step=1) self.slider_percent.bind(value=self.change_percent) self.menu_right.add_widget(self.box_percent) self.menu_right.add_widget(self.slider_percent) # Travel self.box_travel = BoxLayout(orientation='horizontal') self.travel_label = Label( text="Travel ", font_size=self.f_size, markup=True) self.travel_label_value = Label( text=str(self.shape.travel), font_size=self.f_size, markup=True) self.box_travel.add_widget(self.travel_label) self.box_travel.add_widget(self.travel_label_value) self.slider_travel = Slider( min=self.shape.property('travel').get_min(self.shape), max=self.shape.property('travel').get_max(self.shape), value=self.shape.travel, step=2) self.slider_travel.bind(value=self.change_travel) self.menu_right.add_widget(self.box_travel) self.menu_right.add_widget(self.slider_travel) # ColorPicker for Shape self.picker = ColorPicker() self.picker.bind(color=self.on_color) # ColorPicker for background self.picker_bg = ColorPicker() self.picker_bg.bind(color=self.on_color_bg) # Export svg button self.export_button = Button(text='Export', size_hint=(1, 0.15)) self.export_button.bind(on_press=self.export) # Tab packs self.tab_param.add_widget(self.menu_right) self.tab_color.add_widget(self.picker) self.tab_color_bg.add_widget(self.picker_bg) self.tab_export.add_widget(self.export_button) self.add_widget(self.panel) # Popups self.pop_export = Popup( title="Export file", content=Label(text="File exported"), size_hint=(None, None), size=(640, 240)) def change_wdth(self, *args): ''' Change stroke width ''' self.shape.wdth = self.slider_wdth.value self.wdth_label_value.text = str(self.slider_wdth.value) def on_switch(self, *args): ''' Switch mode line or point ''' self.shape.line = self.switch_mode.active def on_color(self, *args): ''' Shape color ''' self.shape.color = self.picker.hex_color def on_color_bg(self, *args): ''' Shape background color ''' self.shape.bg_color = self.picker_bg.hex_color def change_shape_size(self, *args): ''' Shape size ''' self.shape.shape_size = self.slider_shape_size.value self.size_label_value.text = str(self.slider_shape_size.value) def change_a(self, *args): ''' a value ''' self.shape.a = self.slider_a.value self.a_label_value.text = str(self.slider_a.value) def change_b(self, *args): ''' b value ''' self.shape.b = self.slider_b.value self.b_label_value.text = str(self.slider_b.value) def change_m(self, *args): ''' m value ''' self.shape.m = self.slider_m.value self.m_label_value.text = str(self.slider_m.value) def change_n1(self, *args): ''' n1 value ''' self.shape.n1 = self.slider_n1.value self.n1_label_value.text = str(self.slider_n1.value) def change_n2(self, *args): ''' n2 value ''' self.shape.n2 = self.slider_n2.value self.n2_label_value.text = str(self.slider_n2.value) def change_n3(self, *args): ''' n3 value ''' self.shape.n3 = self.slider_n3.value self.n3_label_value.text = str(self.slider_n3.value) def change_nbp(self, *args): ''' point number ''' self.shape.nbp = self.slider_nbp.value self.nbp_label_value.text = str(self.slider_nbp.value) def change_percent(self, *args): ''' Percent value ''' self.shape.percent = self.slider_percent.value self.percent_label_value.text = str(self.slider_percent.value) def change_travel(self, *args): ''' Travel number ''' self.shape.travel = self.slider_travel.value self.travel_label_value.text = str(self.slider_travel.value) def export(self, *args): ''' Export to svg file ''' document = svgwrite.Drawing(filename='export.svg', debug=True) tmp = [(float("%.4g" % e)) for e in self.shape.path] # Export polygon if self.shape.line: svg_path = coupled(tmp) document.add(document.polygon(points=svg_path)) else: # Export points svg_path = coupled(coupled(tmp)) for elem in svg_path: document.add(document.line( start=elem[0], end=elem[1] )) document.save() self.shape.export_to_png('export.png') self.pop_export.open()