PythonKivy1.7.2图像布局未正确对齐

2024-07-08 11:15:09 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我对Kivy完全陌生。我挣扎了一段时间,只是想让一个图像显示在中心。按照我的理解,一切都是一个小部件,任何东西都可以嵌套在它下面(大多数情况下)。如果这不是真的,请纠正我。在

我现在有我的形象,并想开始布局我的用户界面。所有的东西都在左下角对齐。在

import kivy
kivy.require("1.7.2")

from kivy.config import Config
Config.set('graphics', 'width', '540')
Config.set('graphics', 'height', '960')

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.graphics import Rectangle


class RootWidget(Widget):
  pass

class MyApp(App):

    def build(self):
        # self.root = root = RootWidget(source = "snowy_mountains.jpg")
        self.root = root = RootWidget()
        root.bind(size = self._update_rect,
                  pos = self._update_rect)
        with root.canvas.before:
          self.rect = Rectangle(size = root.size,
                                pos = root.pos)

        return root

    def _update_rect(self, instance, value):
        self.rect.pos = instance.pos
        self.rect.size = instance.size


if __name__ == "__main__":
  app = MyApp()
  app.run()

还有我的.kv。。。在

^{pr2}$

我已经通过kivycatalog测试过了,效果很好。我把我从那里所做的完全复制到了我的.kv中,并将其全部嵌套在<RootWidget>(这是我的图像所在的地方)。我已经浏览了API和在线(在kivy上没有太多的用户贡献…),我不明白为什么它会这样。我甚至试着用一个普通的小部件来代替图像的子类化。呸。。。有什么想法吗?在


Tags: fromposrect图像importselfconfigapp
1条回答
网友
1楼 · 发布于 2024-07-08 11:15:09

这是因为Kivy中widget的默认大小是100x100像素-widget不会自动占用所有可用空间。您需要设置size属性:

<RootWidget>:
    BoxLayout:
        size: root.size # this line was missing
        orientation: "vertical"
        # ...

有关此问题的详细信息:Kivy - base application has strange alignment

相关问题 更多 >

    热门问题