2014-10-21 2 views
2

Я хотел бы иметь возможность рисовать на холсте с помощью Python и записывать штрихи по пунктам. Это означает, что пользователь нажимает на холст, перемещает мышь, снова нажимает кнопку мыши, ...Как рисовать на холсте с помощью Python?

Так что я хотел бы работать с Python, как это было в вопросе How do I hand draw on canvas?.

Как это сделать с помощью Python?

Я не ищу способ манипулировать фигур/место SVGs/...

+0

Я предполагаю, что вы ищете решение, которого нет в веб-браузере? Я рекомендую вам взглянуть на PyQt или PySide, которые являются связями Python для встроенного инструментария Qt. –

+0

@MikkoOhtamaa Я никогда не работал с Python и в Интернете. Таким образом, это может произойти внутри веб-браузера. –

+0

В браузере вы можете запускать только JavaScript. Существуют теоретические решения, которые кросс-компилируют Python для JavaScript, но это академические упражнения. Таким образом, вы должны выбрать один из наборов собственных приложений для Python. –

ответ

1

Вы можете использовать библиотеку Kivy, один из стартовых учебников на веб-сайте Kivy делает simple painting app

from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.graphics import Color, Ellipse, Line 


class MyPaintWidget(Widget): 

    def on_touch_down(self, touch): 
     with self.canvas: 
      Color(1, 1, 0) 
      d = 30. 
      Ellipse(pos=(touch.x - d/2, touch.y - d/2), size=(d, d)) 
      touch.ud['line'] = Line(points=(touch.x, touch.y)) 

    def on_touch_move(self, touch): 
     touch.ud['line'].points += [touch.x, touch.y] 


class MyPaintApp(App): 

    def build(self): 
     return MyPaintWidget() 


if __name__ == '__main__': 
    MyPaintApp().run() 

Это должно работать с системами на базе Windows и Unix, включая OSX, а также Android после упаковки по Bulldozer (github). Вы также можете сделать пакет для iOS, но это немного больше complicated

+0

Могу ли я использовать 'argparse' с Kivy? Когда я использую его, как я привык, тогда Kivy, кажется, «переопределяет» анализ аргументов argparse. –

+0

Я не уверен, как, но google приводит меня к программе kivy, которая ее использует: http: //pythonhosted.org/KiTT/_modules/kitt/kitt.html – user22723

Смежные вопросы