Как создать кнопку чтоб она меняла цвет кисти которой рисуешь??

Karina. 234567

Новичок
Пользователь
Окт 18, 2020
16
0
1
Как в код на python добавить кнопку чтоб меняла цвет.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
не понятен вопрос
 

Karina. 234567

Новичок
Пользователь
Окт 18, 2020
16
0
1
Ну вот у меня есть код. При закуске высвечивается окно в котором мышкой можно рисовать например красным цветом. Как мне в код добавить кнопку чтоб при её нажатии мы стали рисовать синим??
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
ну вы код покажите хоть, только через теги code (где пишите сообщение сверху в панели инструментов три точки -> код) с соблюдением отступов
 

Karina. 234567

Новичок
Пользователь
Окт 18, 2020
16
0
1
Код:
from kivy.app import App

from kivy.uix.widget import Widget

from kivy.uix.button import Button



from random import random

from kivy.core.window import Window

from kivy.graphics import (Color, Ellipse, Rectangle, Line)



class PainterWidget(Widget):

    def on_touch_down(self, touch):

        with self.canvas:
            Color(random(), random(), random(), 1)

            rad = 30

            Ellipse(pos = (touch.x - rad/2, touch.y - rad/2), size = (rad, rad))

            touch.ud['line'] = Line(points = (touch.x, touch.y), width = 15)



    def on_touch_move(self, touch):

        touch.ud['line'].points += (touch.x, touch.y)   

    

class PaintApp(App):

    def build(self):

        parent = Widget()

        self.painter = PainterWidget()

        parent.add_widget(self.painter)



        parent.add_widget(Button(text = 'Clear' , on_press = self.clear_canvas, size = (100, 50)))

        parent.add_widget(Button(text = 'Save' , on_press = self.save, size = (100, 50), pos = (100, 0)))

        parent.add_widget(Button(text = 'Screen', on_press = self.screen, size = (100, 50), pos=(200, 0 )))

        color_lab = Label(self, text="Color: ")

        color_lab.grid(row=0, column=0, padx=6)



        red_btn = Button(self, text = "Red", width=10)

        red_btn.grid(row=0, column=1)



        return parent



    def clear_canvas(self, instance):

        self.painter.canvas.clear()   



    def save(self, instance):

        self.painter.size = (Window.size[0], Window.size[1])

        self.painter.export_to_png('mage.png')



    def screen(self, instance):

        Window.screenshot('screen.png')



    def main():

        root = Tk()

        root.geometry("1920x1080+300+300")

        app = paint(root)

        root.mainloop()   



        

if __name__ == '__main__':



    PaintApp().run()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
у вас в коде какая то дикая смесь...
вот минимальный пример того что вам нужно
файл *.py
Python:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color, Ellipse


class MyWidget(Widget):
    pencolor = [255, 0, 0, 1]

    def newclr(self, instance):
        self.pencolor = [0, 0, 255, 1]

    def on_touch_move(self, touch):
        with self.canvas:
            Color(rgba=self.pencolor)
            Ellipse(pos=(touch.x, touch.y), size=(10, 10))


class TestApp(App):

    def build(self):
        return MyWidget()


if __name__ == "__main__":
    TestApp().run()
файл *.kv
Код:
<CustomButton>:

<MyWidget>:
    canvas.before:
        Color:
            rgba: 0, 0, 0, 0
        Rectangle:
            pos: self.pos
            size: self.size
    Button:
        text: "Blue"
        size: 150, 100
        size_hint: None, None
        on_press: root.newclr(self)
 

Karina. 234567

Новичок
Пользователь
Окт 18, 2020
16
0
1
Спасибо большое за помощь ????
 

Форум IT Специалистов