Kivy 透明画布/背景

时间:2021-03-21 12:14:53

标签: python kivy kivy-language

我想让我的画布/背景透明。这意味着如果我将任何按钮/标签或任何其他对象放在画布上,只有它们(标签/按钮...)将可见,而背景不可见。最好的例子是使背景不可见,上面有标签和按钮,而背景是不可见/透明的...

Window.clearcolor 不起作用的示例:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.core.window import Window

Builder.load_string('''

<ToggleButton>:
    on_state: app.root.on_state(self)

<MainScreen>:

    BoxLayout:

        ToggleButtons:


''')

class MainScreen(BoxLayout):
    Window.clearcolor = (0, 0, 0, 0.5)

    def on_state(self, togglebutton):
        tb = togglebutton
        print(tb,tb.state,tb.text)


class ToggleButtons(Screen):

    def __init__(self,**kwargs):
        super(ToggleButtons,self).__init__(**kwargs)
        ResolutionsArray = ["1024x768", "1280x720", "1360x768", "1440x900", "1600x900", "1920x1080"]

        self.dropdown = DropDown()
        for index in ResolutionsArray:

            self.btn = Button(text=index, size_hint_y=None, height=44)

            self.btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))

            self.dropdown.add_widget(self.btn)

        mainbutton = Button(text='1024x768',
                            border=(0, 0, 0, 0),
                            size_hint=(0.25, 0.15),
                            pos_hint={'x': .01, 'y': 0.1})

        mainbutton.bind(on_release=self.dropdown.open)
        
        self.dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))

        self.add_widget(mainbutton)

class MyApp(App):

    def build(self):
        return MainScreen()


MyApp().run()

0 个答案:

没有答案