<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 編程向導:4.8圖形 #### 一、畫布介紹 部件繪畫的表現使用畫布來完成。你可以將它看作一個無限制的畫板,或者一個繪畫指令的集合。 在你的畫布中,你可以應用的指令有很多,但是最主要的兩個是: * 上下文指令(context instructions) * 頂點指令(vertex instructions) 上下文指令不畫任何東西,但是它們改變頂點指令的結果。 畫布包含指令的兩種子集合:canvas.before, canvas.after。這些指令在**canvas**前或后執行。這些指令直到用戶訪問時才創建。 為了添加一個畫布指令到部件,你需要使用畫布上下文: ``` class MyWidget(Widget): def __init__(self, **kwargs): super(MyWidget, self).__init__(**kwargs) with self.canvas: #為主畫布添加你的指令 with self.canvas.before: #渲染前執行 with self.canvas.after: #渲染后執行 ``` #### 二、上下文指令 上下文指令操縱Opengl上下文。你可以旋轉、轉換、拉伸你的畫布。你也可以附著一個材質或改變繪畫的顏色。這是最常用的,但是其它也是很有用的,比如: ``` with self.canvas.before: Color(1, 0, .4, mode='rgb') ``` #### 三、繪畫指令 繪畫指令簡單的包括畫一條直線或一個多邊形,復雜的包括貝塞爾曲線: ``` with self.canvas: #畫一條直線,使用默認的顏色 Line(points=(x1, y1, x2, y2, x3, y3)) #畫一個半透明的紅色的正方形 Color(1, 0, 0, .5, mode='rgba') Rectangle(pos=self.pos, size=self.size) ``` #### 四、配置指令 有時,你想更新或移除你的指令,根據你的需要可以使用不同的方式: 你可以保持一個你的指令的引用并更新它們: ``` class MyWidget(Widget): def __init__(self, **kwargs): super(MyWidget, self).__init__(**kwargs) with self.canvas: self.rect = Rectangle(pos=self.pos, size=self.size) self.bind(pos=self.update_rect) self.bind(size=self.update_rect) def update_rect(self, *args): self.rect.pos = self.pos self.rect.size = self.size ``` 或者你可以清理你的畫布并啟動刷新: ``` class MyWidget(Widget): def __init__(self, **kwargs): super(MyWidget, self).__init__(**kwargs) self.draw_my_stuff() self.bind(pos=self.draw_my_stuff) self.bind(size=self.draw_my_stuff) def draw_my_stuff(self): self.canvas.clear() with self.canvas: self.rect = Rectangle(pos=self.pos, size=self.size) ``` 注意更新的指令被認為是最佳實踐,因為它需要更少的開銷和避免創建新的指令。 ### 下節預告:編程向導4.9Kv語言
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看