2016-12-27 4 views
0

Моя цель - иметь кнопки, которые полностью заполнены изображением. Мой экран разделен пополам. С правой стороны я хотел бы иметь девять кнопок, каждая из которых полностью заполнена другим изображением, все кнопки с одинаковыми размерами. Я хотел бы изменить это изображение, чтобы оно соответствовало кнопке, поэтому соотношение, возможно, должно измениться.kivy изображение размер и положение кнопки

Вот как выглядит мой графический интерфейс прямо сейчас. Изображения не подходят кнопки

enter image description here

Я пытался несколько настроек в моем файле кв, но сейчас я застрял.

Это мой файл kv.

RadioRoot: 
<[email protected]>: 
    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) 

Это соответствующий питон файл

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() 

ответ

0

В теге изображения вы используете ширину, но не размер ...

попробовать:

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 :) 
+0

Спасибо, работал отлично , Я также установил keep_ratio в False. – PalimPalim

 Смежные вопросы

  • Нет связанных вопросов^_^