猕猴桃图像按钮大小 [英] kivy image button size

查看:80
本文介绍了猕猴桃图像按钮大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的目标是使按钮完全充满图像.我的屏幕被分成两半.在右侧,我希望有9个按钮,每个按钮完全填充不同的图像,所有按钮的尺寸均相同.我想调整图像的形状以适合按钮,因此比例可能必须更改.

My goal is to have Buttons which are completely filled with an image. My screen is split in half. On the right hand side I would like to have nine buttons each completely filled with a different image, all buttons with same dimensions. I would like to reshape those image to fit the button, so the ratio would possibly have to change.

这是我的GUI现在的样子.图片不适合按钮

This is how my GUI looks right now. The images do not fit the buttons

我在kv文件中尝试了几次调整,但是现在我被卡住了.

I tried several adjustments in my kv file, but right now I am stuck.

这是我的kv文件.

RadioRoot:
<RadioRoot@BoxLayout>:
    BoxLayout:
        BoxLayout:
            BoxLayout:
                orientation: "vertical"
                Label:
                    size_hint_y: 4
                    text: "info about radio"
                BoxLayout:
                    size_hint_y: 1
                    BoxLayout:
                        orientation: "vertical"
                        BoxLayout:
                            Button:
                                text: "Previous"
                                on_press: root.previous()
                            Button:
                                text: "Play/Stop"
                                on_press: root.play_stop()
                            Button:
                                text: "Next"
                                on_press: root.next()
                Button:
                    size_hint_y: 1
                    text: "Shutdown"
                    on_press: root.shutdown()

        BoxLayout:
            BoxLayout:
                orientation: "vertical"
                BoxLayout:


                    Button:
                        text: "Channel1"
                        on_press: root.channel(1)
                        #size_hint_y: None
                        #size_hint_x: None
                        Image:
                            source: 'swr3.png'
                            size_hint_y: None
                            size_hint_x: None
                            y: self.parent.y + .5* self.parent.height -.5 * self.parent.width/self.image_ratio
                            x: self.parent.x
                            #heigth: self.parent.width/self.image_ratio
                            #heigth: self.parent.height
                            width: self.parent.width
                            keep_ratio: True
                            allow_stretch: True
                    Button:
                        text: "Channel2"
                        on_press: root.channel(2)
                        Image:
                            source: 'flux.png'
                            width: self.parent.width
                            size_hint_y: None
                            size_hint_x: None
                            y: self.parent.y + .5* self.parent.height -.5 * self.parent.width/self.image_ratio
                            x: self.parent.x

                            keep_ratio: True
                            allow_stretch: True
                    Button:
                        text: "Channel3"
                        on_press: root.channel(3)
                BoxLayout:

                    Button:
                        text: "Channel4"
                        on_press: root.channel(4)
                    Button:
                        text: "Channel5"
                        on_press: root.channel(5)
                    Button:
                        text: "Channel6"
                        on_press: root.channel(6)
                BoxLayout:

                    Button:
                        text: "Channel7"
                        on_press: root.channel(7)
                    Button:
                        text: "Channel8"
                        on_press: root.channel(8)
                    Button:
                        text: "Channel9"
                        on_press: root.channel(9)

这是对应的python文件

This is the corresponding python file

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label


class PhilippsRadioApp(App):
    pass

class RadioRoot(BoxLayout):

    def previous(self):
        print("Previous")

    def play_stop(self):
        print("Play/Stop")


    def next(self):
        print("Next")

    def shutdown(self):
        print("Shutdown")

    def channel(self, num):
        print("Channel")


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

推荐答案

在您的图片标签中,您使用的是宽度而不是尺寸...

In your Image tag you are using width but not size ...

尝试:

Image:
    ...
    size: self.parent.size #I think you can remove the size hints since they don't add anything...
    stretch: True #keep this one as well :)

这篇关于猕猴桃图像按钮大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆