J'ai sauté dans le premier jour du calendrier de l'avent Python 2016. C'est le premier jour donc tout le monde devrait le voir ... http://qiita.com/advent-calendar/2016/python
Tout semble être une fourmi, alors je parle de Kivy. (Une petite histoire il y a environ 6 mois)
Le tutoriel de Kivy a un exemple d'une application de peinture simple. https://kivy.org/docs/tutorials/firstwidget.html Cette application de peinture change la couleur du dessin à chaque fois que vous dessinez.
class MyPaintWidget(Widget):
def on_touch_down(self, touch):
color = (random(), 1, 1)
with self.canvas:
Color(*color, mode='hsv')
d = 30.
Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
touch.ud['line'] = Line(points=(touch.x, touch.y))
Même dans le code source, vous pouvez voir que color = (random (), 1, 1) met la couleur au hasard à chaque fois. Lorsqu'il est exécuté, il est comme indiqué dans l'image ci-dessous.
Cependant, je voulais quand même changer la couleur moi-même, alors je l'ai un peu élargie. Kivy a un widget ColorPicker, qui est expérimental, donc je vais l'utiliser. https://kivy.org/docs/api-kivy.uix.colorpicker.html
Au fait, ce gars
J'ai réécrit le programme comme suit et écrit Kv comme un slapstick.
main.py
#from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.uix.colorpicker import ColorPicker
from kivy.graphics import Color, Ellipse, Line
class ClearButton(Button):
pass
class ColorChangeButton(Button):
pass
class MyPopup(Popup):
pass
class MyPaintWidget(Widget):
color = [1, 1, 1, 1]
def on_touch_down(self, touch):
with self.canvas:
Color(rgba=(self.color))
d = 5
Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
touch.ud['line'] = Line(pos=(touch.x, touch.y))
def on_touch_move(self, touch):
touch.ud['line'].points += [touch.x, touch.y]
def clear_canvas(self,*largs):
self.canvas.clear()
def open_popup(self):
popup = MyPopup()
popup.open()
class MyPaintApp(App):
def build(self):
parent = Widget()
self.painter = MyPaintWidget()
clearbtn = ClearButton()
colorbtn = ColorChangeButton()
parent.add_widget(self.painter)
parent.add_widget(colorbtn)
parent.add_widget(clearbtn)
return parent
if __name__ == '__main__':
MyPaintApp().run()
mypaint.kv
<ClearButton>:
Button:
text: 'Clear'
right: root.right
top: root.top
width: 100
height: 100
on_release: app.painter.canvas.clear()
<ColorChangeButton>:
Button:
text: 'Color'
right: root.right
top: root.top
width: 100
height: 100
on_release: app.painter.open_popup()
<MyPopup>:
title: 'Color Select'
size_hint: None, None
size: 400, 400
BoxLayout:
orientation: 'vertical'
ColorPicker:
id: picker
color: app.painter.color
on_color: app.painter.color = self.color
Button:
size_hint_y: None
height: 60
text: 'Change'
on_press: root.dismiss()
ColorPicker a été utilisé dans Kv. Comment l'utiliser, c'est comme ça.
<MyPopup>:
title: 'Color Select'
size_hint: None, None
size: 400, 400
BoxLayout:
orientation: 'vertical'
ColorPicker:
id: picker
color: app.painter.color
on_color: app.painter.color = self.color
Résultat d'exécution comme celui-ci
La couleur a changé en toute sécurité. C'est un bon souvenir que j'ai eu du mal avec peu d'informations sur ColorPicker.
Le code source est sur github. https://github.com/pyKy/Kivy-studies/tree/master/5th
C'est tout à propos de Kivy. Je veux faire un peu plus ...