试图使纽​​扣上的图像具有拉伸图像的大小

时间:2019-01-04 12:07:38

标签: kivy kivy-language

我正在尝试用猕猴桃创建一个屏幕。我希望屏幕在左上角有一个小的主菜单按钮,在屏幕中央有一个大图像,约占屏幕大小的80%,比下面所有我想要的按钮都要小,按钮的大小取决于大小图片。

例如, main_menu按钮应位于左上角,并且屏幕高度和宽度的5%应尽可能小,以使其文字允许。 图片大小应为屏幕的80%, 下面的按钮的高度和宽度应为5%,具体取决于图像尺寸。

我当前的代码是这个,但是当我运行此代码时,下面按钮上的文本显示了窗口的大小(1920,1080)和(1,1)。

我希望它显示的是图像的大小

#:kivy 0.0.0

<EditingScreen>:
    GridLayout:
        rows: 3
        spacing: 10

        AnchorLayout:
            size_hint: None, 0.05
            anchor_x: 'left'
            anchor_y: 'top'
            Button:
                text: 'Main Menu'
                on_press: root.manager.current = 'main'

        Image:
            id: some_image
            source: 'img.png'
            allow_stretch: True
            keep_ratio: True

        Button:
            text: str(some_image.size) + ' ' + str(some_image.size_hint)
            size_hint: None, 0.05                
            width: some_image.width

编辑: 添加我的python代码: 1)screen_manager.py:

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager

from editing_screen import EditingScreen


class Manager(ScreenManager):
    def __init__(self, **kwargs):
        super(Manager, self).__init__(**kwargs)

        self.add_widget(MainScreen(name='main'))
        self.add_widget(InstructionsScreen(name='instructions'))
        self.add_widget(EditingScreen(name='editing'))
        self.current = 'editing'


class ManagerApp(App):
    def build(self):
        return Manager()

if __name__ == '__main__':
    ManagerApp().run()

2)edit_screen.py:

from kivy.uix.screenmanager import Screen
from kivy.lang import Builder

Builder.load_file('editing_screen.kv')

class EditingScreen(Screen):
    pass

3)名为edit_screen.kv的文件中的第一个给定代码

1 个答案:

答案 0 :(得分:1)

editing_screen.kv中,some_image.size为您提供Image小部件的大小,不一定是图像本身的大小。图像的实际大小可以通过Image小部件的norm_image_size属性进行访问。