我看过一些奇特的教程,他们都说如果屏幕变化,标签,按钮等将被调整。但是我的形象没有。然后我发现这是因为我给了它一个特定的位置。所以我改用root.width和root.height,但是它仍然没有扩大规模。 这是我的代码:
from kivy.app import App
from kivy.graphics import *
from kivy.uix.textinput import TextInput
from kivy.graphics import Rectangle
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
class main(GridLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
root = Widget()
self.search = TextInput(multiline = False, pos = (250, 325), size = (self.width * 3, self.height/2))
self.add_widget(self.search)
with self.canvas.before:
Rectangle(source = 'foundit.png', pos = root.center, size = (root.width*4, root.height*4))
class found_it(App):
def build(self):
return main()
if __name__ == '__main__':
found_it().run()
谢谢您随时提出问题。
答案 0 :(得分:1)
在python中使用size
和root.width
设置root.height
时,将使用size
和root.width
的当前值来设置root.height
在执行代码时。通过将更新方法绑定到Rectangle
和size
,您可以编写代码来更新{{1}的pos
或main
的{{1}} pos
的属性。
一种更简单的方法是在size
中定义main
,如下所示:
Rectangle
现在kv
会自动反映对<main>:
canvas.before:
Rectangle:
source: 'foundit.png'
pos: root.center
size: (root.width*4, root.height*4)
的更改,因为main
语言会设置您原本必须执行的绑定。您可以使用Rectangle
做类似的事情。