在kivy中,为什么size_hint对于图像的行为与按钮的行为不同?

时间:2016-07-23 11:46:26

标签: python image button scale kivy

我正在使用kivy 1.9.1构建纸牌游戏。我通过size_hint相对于根窗口的大小显示卡片正确显示。卡类继承自图像类并且工作得很好。我意识到我需要使卡片可以点击,所以我修改了类来继承按钮类。出于某种原因,这与图像的大小不同。背景.png文件变得扭曲。请帮忙。这让我疯了。我通常会关闭size_hint以避免此问题,但我需要根据根窗口大小缩放所有内容。

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

蟒:

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

1 个答案:

答案 0 :(得分:0)

事实证明,解决方案是继承图像类和按钮行为类,如下所示:

来自kivy.uix.behaviors导入ButtonBehavior
来自kivy.uix.image import Image

类卡(ButtonBehavior,Image):传递