widget控制項建立後,kivy會自動為其生成乙個canvas畫布,用來繪製物件,通過畫布可以設定顯示的顏色,尺寸等,或設定背景。這裡的畫布與html5裡的是不相同的,是一組在座標空間的指令容器。
設定背景色為白色,**如下
from kivy.uix.boxlayout import boxlayout
from kivy.graphics import rectangle,color
class boxlayoutwin(boxlayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
#設定背景
with self.canvas:
color(1,1,1,1)
self.rect = rectangle(pos=self.pos,size=self.size)
self.bind(pos=self.update_rect,size=self.update_rect)
def update_rect(self,*args):
self.rect.pos = self.pos
self.rect.size = self.size
def build(self):
return boxlayoutwin()
if __name__=='__main__':
update_rect 設定canvas大小與視窗一致。
另外kivy提供了更簡單的設定方法,直接設定視窗的顏色
from kivy.core.window import windowfrom kivy.utils import
Kivy App開發之布局 FloatLayout
floatlayout時浮動布局,子控制項通過位置和尺寸控制,放在視窗的任意位置,當視窗尺寸變化時,內部的子控制項也會相應地調整大小和位置。示例 main.py 如下 from kivy.uix.floatlayout import floatlayout class floatlayoutwin ...
Kivy App開發之布局 BoxLayout
盒子布局,boxlayout,可以將子控制項水平或垂直排列,類似於android中的線性布局,預設以10畫素的間距平分父視窗,也可以自定義設定間距,改變布局方式等。實現 如下,main.py from kivy.uix.button import button from kivy.uix.boxla...
Kivy App開發之布局 StackLayout
stacklayout為堆疊布局,在stacklayout布局中,只要沒有超出布局的範圍,可以垂直或水平地擺放子控制項,子控制項的大小可以不相同。通過orientation屬性指定布局的方向,預設值 lr tb lr,表示從左到右,rl,表示從右往左,tb,表示自上而下,bt,表自下而上。orien...