赤い四角のすぐ上のプログラムを、エディタ Visual Studio Codeに書いていってターミナルで実行します。
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.slider import Slider from kivy.uix.widget import Widget from kivy.graphics import Rectangle,Color class DrawingWidget(Widget): def init(self): super(DrawingWidget,self).init()
with self.canvas: Color(1,0,0,1)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(300,200)) class DrawingApp(App):
with self.canvas: Color(0,1,1,1)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(300,600))
このように書き換えました。
更に、下記のコードを追加します。
with self.canvas: Color(1,1,0,1)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(0,700)) with self.canvas: Color(1,0,1,0.7)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(0,500))
with self.canvas: Color(0,1,1,0.6)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(300,600))
with self.canvas: Color(1,1,0,1)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(600,700))
with self.canvas: Color(1,0,1,0.7)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(600,500))
with self.canvas: Color(0,1,1,0.6)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(900,600)) with self.canvas: Color(1,1,0,1)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(1200,700)) with self.canvas: Color(1,0,1,0.7)#赤、緑、青、透明度 Rectangle(size=(300,100), pos=(1200,500))
簡易的な市松模様です。シアンとマゼンタの透明度も変更しています。
では、最終的なコードにして実行します。
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.slider import Slider from kivy.uix.widget import Widget from kivy.graphics import Rectangle,Color
class DrawingWidget(Widget): def init(self): super(DrawingWidget,self).init()
with self.canvas: Color(1,1,1,1)#赤、緑、青、透明度 self.rect=Rectangle(size=(self.size), pos=self.pos)
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.properties import ListProperty,ObjectProperty from kivy.graphics.vertex_instructions import (Rectangle, Ellipse, Line) from kivy.graphics.context_instructions import Color import random class ScatterTextWidget(BoxLayout): text_colour=ListProperty([1,0,0,1]) def init(self,kwargs): super(ScatterTextWidget,self).init(kwargs) def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] self.text_colour=colour class TutorialApp(App): def build(self): return ScatterTextWidget() def some_function(args): print(‘text changed’) if name == “main”: TutorialApp().run()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.properties import ListProperty import random
class ScatterTextWidget(BoxLayout): text_colour=ListProperty([1,0,0,1])
def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] self.text_colour=colour class TutorialApp(App):
def build(self): return ScatterTextWidget()
def some_function(args): print(‘text changed’) if name == “main”: TutorialApp().run()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.properties import ListProperty,ObjectProperty from kivy.graphics.vertex_instructions import (Rectangle, Ellipse, Line) from kivy.graphics.context_instructions import Color import random class ScatterTextWidget(BoxLayout): text_colour=ListProperty([1,0,0,1]) def init(self,kwargs): super(ScatterTextWidget,self).init(kwargs) #図形の指定 長方形、楕円、線 with self.canvas: Color(0,1,0,1) Rectangle(pos=(0,100),size=(300,100)) Ellipse(pos=(0,400),size=(300,100)) Line(points=[0,0,500,600,400,300], close=True, width=3) def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] self.text_colour=colour class TutorialApp(App): def build(self): return
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.properties import ListProperty,ObjectProperty from kivy.graphics.vertex_instructions import (Rectangle, Ellipse, Line) from kivy.graphics.context_instructions import Color import random class ScatterTextWidget(BoxLayout): text_colour=ListProperty([1,0,0,1]) def init(self,kwargs): super(ScatterTextWidget,self).init(kwargs) def change_label_colour(self,args): colour= [random.random() for i in range(3)]+[1] self.text_colour=colour class TutorialApp(App): def build(self): return ScatterTextWidget() def some_function(args): print(‘text changed’) if name == “main”: TutorialApp().run()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout import random class ScatterTextWidget(BoxLayout): def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] label=self.ids[‘my_label’] label.color=colour class TutorialApp(App): def build(self): return ScatterTextWidget() def some_function(args): print(‘text changed’)
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout import random class ScatterTextWidget(BoxLayout): def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] label=self.ids[‘my_label’] label.color=colour
class TutorialApp(App): def build(self): return ScatterTextWidget()
def some_function(args): print(‘text changed’) if name == “main”: TutorialApp().run()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout import random class ScatterTextWidget(BoxLayout): def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] label=self.ids[‘my_label’] label.color=colour label1=self.ids.label1 label2=self.ids.label2 label1.color=colour label2.color=colour
class TutorialApp(App): def build(self): return ScatterTextWidget() def some_function(args): print(‘text changed’)
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout from kivy.properties import ListProperty import random class ScatterTextWidget(BoxLayout): text_colour=ListProperty([1,0,0,1]) def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] self.text_colour=colour class TutorialApp(App): def build(self): return ScatterTextWidget()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout class ScatterTextWidget(BoxLayout): pass
class TutorialApp(App): def build(self): return ScatterTextWidget()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout import random
class ScatterTextWidget(BoxLayout): def change_label_colour(self,args): colour=[random.random() for i in range(3)]+[1] label=self.ids[‘my_label’] label.color=colour class TutorialApp(App): def build(self): return ScatterTextWidget()
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout
from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label import Label from kivy.uix.floatlayout import FloatLayout from kivy.uix.textinput import TextInput from kivy.uix.boxlayout import BoxLayout
class TutorialApp(App): def build(self): b=BoxLayout(orientation=’vertical’) t=TextInput(font_size=150, size_hint_y=None, height=200, text=’default’) f=FloatLayout() s=Scatter() l=Label(text=’default’,font_size=150) t.bind(text=l.setter(‘text’)) f.add_widget(s) s.add_widget(l) b.add_widget(t) b.add_widget(f) return b def some_function(*args): print(‘text changed’) if name == “main”: TutorialApp().run()
from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Label
class YourApp(App): def build(self): root_widget=BoxLayout(orientation=’vertical’) output_label=Label(size_hint_y=1) button_symbols=(‘1′,’2′,’3′,’+’, ‘4’,’5′,’6′,’-‘, ‘7’,’8′,’9′,’.’, ‘0’,’‘,’/’,’=’)
#数字ボタン群の高さはラベルの高さの2倍で4列用意 #ボタンの表示は数値と一致させる button_grid=GridLayout(cols=4,size_hint_y=2) for symbol in button_symbols: button_grid.add_widget(Button(text=symbol))
#ラベルに押したボタンを表示させる def print_button_text(instance): output_label.text+=instance.text for button in button_grid.children[1:]: button.bind(on_press=print_button_text)