2016-12-27 5 views
0

Mein Ziel ist es, Buttons zu haben, die komplett mit einem Bild gefüllt sind. Mein Bildschirm ist in zwei Hälften geteilt. Auf der rechten Seite hätte ich gerne neun Tasten, die jeweils komplett mit einem anderen Bild gefüllt sind, alle Tasten mit den gleichen Abmessungen. Ich würde gerne das Bild so umformen, dass es auf den Button passt, also müsste sich das Verhältnis möglicherweise ändern.kivy image button size and position

So sieht meine GUI jetzt aus. Die Bilder passen nicht die Tasten

enter image description here

ich einige Anpassungen in meinem kv-Datei versucht, aber jetzt stecken ich bin.

Dies ist meine kv-Datei.

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) 

Dies ist die entsprechende Python-Datei

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

Antwort

0

in Ihrem Bild-Tag Sie Breite verwenden, aber nicht Größe ...

try:

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

Danke, funktionierte perfekt . Ich habe keep_ratio auch auf False gesetzt. – PalimPalim