Kivy:我希望将窗口大小的按钮堆叠在屏幕顶部

时间:2018-08-08 15:57:21

标签: python button layout kivy transparent

我希望窗口大小的不透明黑色按钮堆叠在屏幕顶部 当我按下不透明的黑色按钮时,该按钮将消失并且下面的屏幕将可见。 我尝试过但一直失败。

下面是我的代码(.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.animation import Animation
from kivy.clock import Clock

class First_Screen(Screen, BoxLayout):
    pass

class ScreenManagement(ScreenManager):
    pass

presentation = Builder.load_file("main.kv")

class TubucApp(App):
    def build(self):
        return presentation

TubucApp().run()

这是我的.kv文件:

ScreenManagement:
    transition:
    First_Screen:

<First_Screen>: #<-i want fullscreen-sized opaque black button covers
                #up this screen and will be disappear when i press the button
    name: 'First_Screen'
    BoxLayout:
        orientation: 'horizontal'
        spacing: 50 
        padding: [50, 50, 50, 50]
        canvas:
            Rectangle:
                pos: self.pos
                size: self.size 
                source: 'image/background.jpg'
        Button:
            id: campustown
            width: 40
            pos_hint: {'x' : 0, 'y':.45}
            size_hint: [.6,.1]
            background_normal:'image/test.png'
            background_down:'image/test2.png'
            border: (0,0,0,0)
            font_size: 15
            text: 'campus-town'

这两个图像显示了我要完成的工作:

Img01 Img02

我该怎么做?

1 个答案:

答案 0 :(得分:0)

Python代码

  1. BoxLayout移除class First_Screen()

摘要-Py

class First_Screen(Screen):
    pass

kv文件

  1. 为按钮添加on_release事件
  2. background_normal设置为background_down

摘要-kv

<First_Screen>:
    name: 'First_Screen'

    Button:
        id: campustown
        background_normal: 'image/test.png'
        background_down: 'image/test2.png'
        border: (0,0,0,0)
        font_size: 15
        text: 'campus-town'
        on_release:
            self.background_normal = self.background_down

输出

Img01 Img02