Я пытаюсь понять, как использовать Kivy, в частности, холст. Я более или менее понял, как перемещать и изменять размер уже нарисованного прямоугольника, но не могу заставить его изменить цвет. Вот мой код:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle, Color
class CanvasWidget(Widget):
def __init__(self, **kwargs):
super(CanvasWidget, self).__init__(**kwargs)
self.click_occured = False
with self.canvas:
Color(0, 1, 0)
self.background = Rectangle(pos=self.pos, size=self.size)
Color(1, 1, 1)
self.rect1 = Rectangle(pos=self.pos, size=(self.width/2, self.height/2))
Color(0, 0, 1)
self.rect2 = Rectangle(pos=self.pos, size=(self.width/4, self.height/4))
self.bind(pos = self.update_rect, size = self.update_rect)
def update_rect(self, *args):
self.background.pos = self.pos
self.background.size = self.size
if not self.click_occured:
self.rect1.pos = self.pos
else:
self.rect1.pos = self.x + self.width/8, self.y + self.height/8
self.rect1.size = (self.width/2, self.height/2)
self.rect2.pos = self.pos
self.rect2.size = (self.width/4, self.height/4)
def on_touch_down(self, touch):
self.click_occured = True
self.rect1.pos = self.x + self.width/8, self.y + self.height/8
#also, change rect1's color from white to red
class CanvasApp(App):
def build(self):
return CanvasWidget()
CanvasApp().run()
Вместо комментария в конце метода on_touch_down я хотел бы изменить цвет rect1 на красный. Это должно быть изменение существующего прямоугольника, а не создание нового, поскольку я хочу, чтобы он оставался позади rect2, и я не хочу перерисовывать последний вручную.
Если возможно, я хотелось бы добиться этого без использования языка kv, поскольку я хочу иметь возможность создавать прямоугольники, метки и т. д. на лету во время выполнения кода, а с языком kv это кажется неудобным.
Я пытаюсь понять, как использовать Kivy, в частности, холст. Я более или менее понял, как перемещать и изменять размер уже нарисованного прямоугольника, но не могу заставить его изменить цвет. Вот мой код: [code]from kivy.app import App from kivy.uix.widget import Widget from kivy.graphics import Rectangle, Color
def on_touch_down(self, touch): self.click_occured = True self.rect1.pos = self.x + self.width/8, self.y + self.height/8 #also, change rect1's color from white to red
class CanvasApp(App): def build(self): return CanvasWidget() CanvasApp().run() [/code] Вместо комментария в конце метода on_touch_down я хотел бы изменить цвет rect1 на красный. Это должно быть изменение существующего прямоугольника, а не создание нового, поскольку я хочу, чтобы он оставался позади rect2, и я не хочу перерисовывать последний вручную. Если возможно, я хотелось бы добиться этого без использования языка kv, поскольку я хочу иметь возможность создавать прямоугольники, метки и т. д. на лету во время выполнения кода, а с языком kv это кажется неудобным.
Я пытаюсь понять, как использовать Kivy, в частности, холст. Я более или менее понял, как перемещать и изменять размер уже нарисованного прямоугольника, но не могу заставить его изменить цвет. Вот мой код:
from kivy.app import App
from...
Я пытаюсь изменить значки погоды, которые я получаю от API на те, которые я нарисовал на Photoshop! Мои переменные на французском языке, а также в комментариях, если вам нужны переводы, чтобы понять мой код, пожалуйста, спросите!...
Я рисовал текст как в WinForms, так и в Android на растровом изображении.
Текст: Καλώς ήρθατε στην επίσκεψη, шрифт Arial и размер шрифта 12.
В WinForms я использовал графику и установил для нее антиализацию.
В Android я использовал холст и краска...
Я рисовал текст как в WinForms, так и в Android на растровом изображении.
Текст: Καλώς ήρθατε στην επίσκεψη, шрифт Arial и размер шрифта 12.
В WinForms я использовал графику и установил для нее антиализацию.
В Android я использовал холст и краска...