2016-07-23 21 views
0

Ich baue ein Kartenspiel mit Kivy 1.9.1. Ich hatte die Karten korrekt angezeigt, relativ zur Größe des Hauptfensters, über size_hint. Die Kartenklasse erbte von der Bildklasse und funktionierte großartig. Ich erkannte, dass ich die Karten klickbar machen musste, also änderte ich die Klasse, um stattdessen von der Button-Klasse zu erben. Aus irgendeinem Grund war diese Größe nicht gleich wie ein Bild. Die Hintergrund-PNG-Datei wurde verzerrt. Bitte helfen Sie. Das macht mich verrückt. Normalerweise deaktiviere ich size_hint, um dieses Problem zu vermeiden, aber ich brauche alles skaliert basierend auf der Größe des Hauptfensters.Warum verhält sich size_hint in Bildern anders als bei Schaltflächen?

ScreenManagement: 
    CardTableScreen: 
<Card>: 
    size_hint: (.25, .25) 
    pos_hint: ({'left': .05}) 
<CardTableScreen>: 
    name: 'cardTable' 

    Card: 
     name: 'card0' 
     id: card0 
     pos: (self.width *.20 , root.height/2) 
    Card: 
     name: 'card1' 
     id: card1 
     pos: (self.width * .75, root.height/2) 
    Card: 
     name: 'card2' 
     id: card2 
     pos: (self.width * 1.30 , root.height/2) 
    Card: 
     name: 'card3' 
     id: card3 
     pos: (self.width * 1.85, root.height/2) 
    Card: 
     name: 'card4' 
     id: card4 
     pos: (self.width * 2.40, root.height/2) 
    Label: 
     name: 'handType' 
     id: handType 
     pos: (-(card0.width *.125), root.height * .30) 
     font_size: '18sp' 

<Layout>: 
    orientation: 'vertical' 
    canvas.before: 
     Color: 
      rgba: 0,.25,0,1 
     Rectangle: 
      pos: self.pos 
      size: self.size 

Python:

from kivy.uix.button import Button 
class(Button): pass 
+0

Bitte geben Sie Ihren Code für diese Community gemäß [Anleitung zum Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve) ein. –

Antwort

0

Es stellte sich heraus, die Lösung ist von der Bildklasse und die Schaltfläche Verhalten Klasse erben, etwa so:

von kivy.uix.behaviors importieren ButtonBehavior
von kivy.uix.image import Image

Klasse Karten (ButtonBehavior, Image): pass