Python 在kivy中访问画布矩形
我是kivy的新手,访问画布矩形时遇到了这个问题。我需要在整个代码中加载图像时保持更新,因此窗口的大小会发生变化,但与文本框或图像等其他属性不同,我无法使用id或组访问它。非常感谢您的帮助:) 我的python代码:Python 在kivy中访问画布矩形,python,kivy,kivy-language,Python,Kivy,Kivy Language,我是kivy的新手,访问画布矩形时遇到了这个问题。我需要在整个代码中加载图像时保持更新,因此窗口的大小会发生变化,但与文本框或图像等其他属性不同,我无法使用id或组访问它。非常感谢您的帮助:) 我的python代码: import kivy from kivy.lang import Builder from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Labe
import kivy
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.widget import Widget
GUI = Builder.load_file('style.kv')
class NotebookScreen(GridLayout):
def __init__(self, **kwargs):
self.rows = 1
super(NotebookScreen, self).__init__(**kwargs)
self.bind(pos=self.update_background, size=self.update_background)
def update_background(self, *args):
background = self.ids
#can't seem to access rectangle here...
# background.size = self.size
# background.pos = self.pos
class MainApp(App):
def build(self):
return NotebookScreen()
if __name__ == "__main__":
MainApp().run()
我的kv代码:
<NotebookScreen>
GridLayout:
id: back_layout
cols: 1
rows: 1
canvas:
Color:
rgba: 1, 1, 1, 1
Rectangle:
id: rect
pos: self.center
size: self.width, self.height
Image:
id: notebook_image
source: 'images/notebook.jpg'
网格布局:
id:后视图布局
科尔斯:1
行数:1
画布:
颜色:
rgba:1,1,1,1
矩形:
id:rect
位置:自我中心
尺寸:自宽、自高
图片:
id:笔记本电脑图像
资料来源:“images/notebook.jpg”
我认为您可以通过包含在其中的GridLayout的画布访问它。children
属性。您的GridLayout
中的矩形应该自动更新(感谢kv
)。请注意,设置pos:self.center
会将矩形的左下角放置在GridLayout
的中心。我认为您可以通过它所包含的GridLayout的canvas.children
属性访问它。您的GridLayout
中的矩形应该会自动更新(感谢kv
)。请注意,设置pos:self.center
会将矩形的左下角置于网格布局的中心。