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